先创建一个实体类:
public class Emp {
private Integer id;
private Integer age;
private String gender;
private String firstName;
private String lastName;
public Emp() {
super();
}
public Emp(Integer id, Integer age, String gender, String fName, String lName) {
this.id = id;
this.age = age;
this.gender = gender;
this.firstName = fName;
this.lastName = lName;
}
@Override
public String toString() {
return "Employee [id=" + id + ", age=" + age + ", gender=" + gender + ", firstName=" + firstName + ", lastName="
+ lastName + "]";
}
get,set方法需要创建
}
测试类:
public class TestEmpPredicates {
public static void main(String[] args) {
Emp e1 = new Emp(1, 23, "M", "Rick", "Beethovan");
Emp e2 = new Emp(2, 13, "F", "Martina", "Hengis");
Emp e3 = new Emp(3, 43, "M", "Ricky", "Martin");
Emp e4 = new Emp(4, 26, "M", "Jon", "Lowman");
Emp e5 = new Emp(5, 19, "F", "Cristine", "Maria");
Emp e6 = new Emp(6, 15, "M", "David", "Feezor");
Emp e7 = new Emp(7, 68, "F", "Melissa", "Roy");
Emp e8 = new Emp(8, 79, "M", "Alex", "Gussin");
Emp e9 = new Emp(9, 15, "F", "Neetu", "Singh");
Emp e10 = new Emp(10, 45, "M", "Naveen", "Jain");
List<Emp> employees = new ArrayList<Emp>();
employees.addAll(Arrays.asList(new Emp[] { e1, e2, e3, e4, e5, e6, e7, e8, e9, e10 }));
// System.out.println();
//输出没有一个Employee.age>21
employees.stream().filter(p->p.getAge()>21).forEach(System.out::println);
//返回符合条件的一个集合
List<Emp> employees2 =employees.stream().filter(p->p.getAge()>21).collect(Collectors.<Emp>toList());
employees2.forEach(p->System.out.println(p.toString()));
//返回符合条件的第一个对象
employees.stream().filter(p->p.getAge()>21).findFirst();
//抽取对象中所有的id的集合
employees.stream().map(Emp::getId).collect(Collectors.toList()).forEach(System.err::println);
}
}