Java在对 List 集合进行按条件查询的时候,经常会想到使用for循环。
自从 Java 8 引入了 Lambda 后,简化了循环的使用。
举例说明 Lambda的 foreach 和 filter 的简单使用。
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class StreamTest {
public static void main(String[] args) {
List<Student> studentList = new ArrayList<Student>();
List<Student> resultList = new ArrayList<>();
Student student1 = new Student("zhangsan", 20);
Student student2 = new Student("lisi", 21);
Student student3 = new Student("wangwu", 22);
Student student4 = new Student("zhouliu", 23);
studentList.add(student1);
studentList.add(student2);
studentList.add(student3);
studentList.add(student4);
//foreach循环
studentList.stream().forEach(e -> {
if(!"lisi".equals(e.getName())){
resultList.add(e);
}
}
);
//filter过滤
resultList = studentList.stream().filter( Student ->!"zhouliu".equals(Student.getName())).collect(Collectors.toList());
}
}