stream 操作

stream 是java8的新特性,處理集合完成常見的操作,

可以進行常見的過濾 映射 排序,截取等,操作的結果返回也是流對象,執行最終操作時才會將流處理

//獲取流list.stream()比如有以一個student的集合

class Student{

private Inteager id;

private String userName;

private Inteager sex;

private Double grade;

}

List<student> stuList=new ArrayList();/<student>

//添加數據獲取所有對象的id

List<inteager> idList=stuList.stream().map(Student::getId).Collect(Collectors.toList());/<inteager>

List<inteager> idSet=stuList.stream().map(Student::getId).Collect(Collectors.toSet());/<inteager>

//map 獲取id轉為map 將id為key 轉為map後可以使用key快速獲取對象Map<string> map=stuList.stream().Collect(Collectors.toMap(Student::getId,a->a,(b,c)->b)));/<string>

如果一個id可能會有多個student的時候Map<string>> studentList=stuList.stream().Collect(Collectors.groupingBy(Student::getId));/<string>

除了上邊的操作,steam中還有其他的操作

filter();

//獲取大於60分的數據

stuList.stream().filter(x->x.getGrade()>60).Collect(Collectors.toList());

forEach();

//打印所有人的姓名stuList.stream().map(DmArea::getName).forEach(System.out::println)

另外還有以下的操作,就不一一列舉了,

Match

min/max/distinct

sorted

reduce


分享到:


相關文章: