zoukankan      html  css  js  c++  java
  • 根据某个字段筛选list数据

    //测试类

    package test;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.junit.jupiter.api.Test;
    
    public class TestLambda {
    	
    	@Test
    	public void test() {
    		List<Person>list=new ArrayList<Person>();
    		list.add(new Person("张三",20,500));
    		list.add(new Person("李四",40,600));
    		list.add(new Person("赵四",35,500));
    		list.add(new Person("王五",36,500));
    		list.add(new Person("王七",30,600));
    		list.add(new Person("旺旺",31,700));
    		list.add(new Person("倪萍",35,500));
    		List<Person>personList=getPersonList(list,new GetInfoByAge());
    		System.out.println(list.toString());
    		System.out.println("personList=========="+personList);
    		personList.forEach(person->System.out.println("结果==="+person));
    		
    	}
    	
    	/**
    	 * 匿名内部类实现
    	 */
    	@Test
    	public void test2() {
    		List<Person>list=new ArrayList<Person>();
    		list.add(new Person("张三",20,500));
    		list.add(new Person("李四",40,600));
    		list.add(new Person("赵四",35,500));
    		list.add(new Person("王五",36,500));
    		list.add(new Person("王七",30,600));
    		list.add(new Person("旺旺",31,700));
    		list.add(new Person("倪萍",35,500));
    		
    		
    		List<Person>list2=getPersonList(list,new MyPrivate<Person>() {
    			@Override
    			public boolean getInfo(Person t) {
    				// TODO Auto-generated method stub
    				return t.getAge()<=32;
    			}
    			
    		});
    		System.out.println("list2===="+list2);
    		
    	}
    	/**
    	 * lambda表达式实现
    	 */
    	@Test
    	public void Test3() {
    		List<Person>list=new ArrayList<Person>();
    		list.add(new Person("张三",20,500));
    		list.add(new Person("李四",40,600));
    		list.add(new Person("赵四",35,500));
    		list.add(new Person("王五",36,500));
    		list.add(new Person("王七",30,600));
    		list.add(new Person("旺旺",31,700));
    		list.add(new Person("倪萍",35,500));
    		
    		List<Person>list3=getPersonList(list,(e)->e.getAge()>=40);
    		System.out.println("list3======"+list3);
    		
    	}
    	
    	/**
    	 * 判断方法
    	 * @param list
    	 * @param myPrivate
    	 * @return
    	 */
    	public List<Person>getPersonList(List<Person>list,MyPrivate<Person> myPrivate){
    		List<Person>personList=new ArrayList<Person>();
    		for(Person person:list) {
    			if(myPrivate.getInfo(person)){
    				personList.add(person);
    			}
    		}
    		return personList;
    	}
    
    }
    

      

      

      接口

    package test;
    
    public interface MyPrivate<T> {
    	public boolean getInfo(T t);
    
    }
    

      实现类

    package test;
    
    public class GetInfoByAge implements MyPrivate<Person>{
    
    	@Override
    	public boolean getInfo(Person p) {
    		
    		return p.getAge()>=35;
    	}
    
    }
    

      

  • 相关阅读:
    Ubutun 安装oh-my-zsh
    归并算法
    3n+1问题
    插入排序
    二分查找
    rehl7配置本地yum仓库
    解决Anaconda3报错:AttributeError: '_NamespacePath' object has no attribute 'sort'
    深度学习情感分析(随机梯度下降代码实现)
    MySQL中创建数据库/表(外键约束),向表中插入数据
    python---利用unittestreport模块输出测试报告
  • 原文地址:https://www.cnblogs.com/xianz666/p/14998407.html
Copyright © 2011-2022 走看看