[java]java8 Stream 基本使用
阿新 • • 發佈:2018-12-02
List<IdNameEntity> lists = new ArrayList<>(); lists.add(new IdNameEntity(8, "王一")); lists.add(new IdNameEntity(5, "李二")); lists.add(new IdNameEntity(7, "張三")); lists.add(new IdNameEntity(7, "趙四")); //使用普通方式解決 Map<Integer ,List<IdNameEntity>> map = new HashMap<>(); lists.forEach((temp) -> { if (map.containsKey(temp.getId())){ map.get(temp.getId()).add(temp); }else { List<IdNameEntity> list = new ArrayList<>(); list.add(temp); map.put(temp.getId(),list); } }); //java8 Stream 過濾和分組 Map<Integer, List<IdNameEntity>> collect = lists.stream().filter(temp -> temp.getId() > 5) .collect(Collectors.groupingBy(IdNameEntity::getId)); //list 轉為 map 注意 key不可以 重複 Map<String, IdNameEntity> collect = lists.stream().collect(Collectors.toMap(IdNameEntity::getName, IdNameEntity -> IdNameEntity)); lists.stream().map(temp -> temp.getId() * 2).collect(Collectors.toList());
常用的 groupingby 進行分組
filter 進行過濾
map reduce 進行函數語言程式設計
轉換map list set
sorted 排序