Java8新特性Stream流應用示例
阿新 • • 發佈:2021-10-09
過濾集合
List<String> newList = list.stream().filter(item -> item != null).collect(Collectors.toList());
找出並返回集合中重複的元素
ArrayList<Integer> list = new ArrayList<>(); list.add(1); list.add(1); list.add(2); list.add(3); Set<Integer> collect = list.stream().filter(i -> list.stream().filter(i::equals).count() > 1).collect(Collectors.toSet());
返回物件陣列某一元素構成的集合
List<String> list1 = list.stream().map(User::getUsername).collect(Collectors.toList());
根據某一元素去重
ArrayList<EmdBageOrderListDto> distinctList = list.stream().collect(Collectors.collectingAndThen( Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(User::getUsername))), ArrayList::new));
根據集合某個屬性分組並存入map
Map<String, List<User>> bageOrderMap = list.stream().collect(Collectors.groupingBy(User::getUsername));
型別轉換
List轉String
String str = list.stream().collect(Collectors.joining(","))
List<String>
轉List<Integer>
//方法一 List<Integer> intList = strList.stream().map(Integer::parseInt).collect(Collectors.toList()); //方法二 List<Integer> intStream = strList.stream().mapToInt(Integer::parseInt).boxed().collect(Collectors.toList());