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
閱讀更多 編程的boy 的文章