java8stream操作:從集合中獲取符合條件的元素
List<Student> students = new ArrayList<>();
students.add(new Student(1,"張三",90));
students.add(new Student(2,"李四",60));
students.add(new Student(3,"王五",30));
students.add(new Student(4,"趙六",85));
int studentId = 3;
Student student = students.stream().filter(o -> o.getId() == studentId).findAny().orElse(null);
如上,獲取id爲3的元素對象,如果不存在返回null。
student類:
public class Student {
private int id;
private String name;
private int score;
public Student(int id, String name, int score) {
this.id = id;
this.name = name;
this.score = score;
}
get...
set...
}
其他用法:
List<WorkHandoverModel>workHandoverList2=workHandoverList.stream().filter(item->item.getIsDelete().equals(0)).collect(Collectors.toList());//獲取list中符合沒有刪除的工作交接的list
List<WorkHandoverModel>workHandoverList1=workHandoverList.stream().filter(item->item.getIsDelete().equals(1)).collect(Collectors.toList());
workHandoverList1.stream().forEach(item->item.setDispathStatus(null));//對查詢出來的list統一賦值
workHandoverList1.stream().forEach(item->item.setShowDispathStatus(null));
//workHandoverList1.stream().forEach(item->item.setDispathId(null));
workHandoverList2.addAll(workHandoverList1);