@Test public void test3() { List<ListDTO> list = new ArrayList<>(); list.add(new ListDTO(1L, "张三")); list.add(new ListDTO(2L, "张四")); list.add(new ListDTO(3L, "张⑤")); list.add(new ListDTO(4L, "张六")); list.add(new ListDTO(5L, "张七")); list.add(new ListDTO(6L, "张八")); list.add(new ListDTO(7L, "张九")); list.add(new ListDTO(8L, "张十")); list.add(new ListDTO(9L, "张十")); list.add(new ListDTO(10L, "张十")); list.add(new ListDTO(11L, "张十")); list.add(new ListDTO(12L, "张十")); // 1.循环遍历 list.forEach(a -> System.out.println("循环遍历得到的值:" + a.getName())); // 2.获得最大ID实体 ListDTO maxDto = list.stream().max(Comparator.comparing(ListDTO::getId)).get(); System.out.println("maxDto:" + maxDto); // 3.获得最小ID实体 ListDTO minDto = list.stream().min(Comparator.comparing(ListDTO::getId)).get(); System.out.println("minDto:" + minDto); // 4.排序 - 正序 list.sort(Comparator.comparing(ListDTO::getId)); System.out.println("list正序:" + list); // 5.排序 - 倒序 list.sort(Comparator.comparing(ListDTO::getId).reversed()); System.out.println("list倒序:" + list); // 6.分组 Map<Long, List<ListDTO>> group = list.stream().collect(Collectors.groupingBy(ListDTO::getId)); System.out.println("分组结果group:" + group); // 7.从里面取出id集合 List<Long> ids = list.stream().map(ListDTO::getId).collect(Collectors.toList()); System.out.println("ids:" + ids); // 8.过滤 List<ListDTO> filters = list.stream().filter(a -> Objects.equals(a.getId(), 8L)) .filter(a -> StringUtils.equals("张九", a.getName())).collect(Collectors.toList()); System.out.println("过滤filters:" + filters); // 9.把id,对象 组成map Map<Long, ListDTO> map = list.stream().collect(Collectors.toMap(ListDTO::getId, a -> a)); System.out.println("map:" + map); // 10.统计 LongSummaryStatistics statistics = list.stream().collect(Collectors.summarizingLong(ListDTO::getId)); System.out.println("统计:" + statistics); // 求和 long sum = statistics.getSum(); System.out.println("统计求和sum:" + sum); // 集合大小 long count = statistics.getCount(); System.out.println("统计集合大小count:" + count); // 最大值 long max = statistics.getMax(); System.out.println("统计最大值max:" + max); // 最小值 long min = statistics.getMin(); System.out.println("统计最小值min:" + min); // 平均值 double average = statistics.getAverage(); System.out.println("统计平均值average:" + average); // 11.求和 long summation = list.stream().mapToLong(ListDTO::getId).sum(); System.out.println("求和summation:" + summation); Long summation1 = list.stream().collect(Collectors.summingLong(ListDTO::getId)); System.out.println("求和summation1:" + summation1); if (CollectionUtils.isEmpty(list)) { throw new RuntimeException("错误"); } ListDTO dto = list.stream() .filter(a -> Objects.equals(a.getId(), 11L)) .findFirst().orElseThrow(() -> new RuntimeException("失败")); System.out.println("dto:" + dto); }
Java1.8写法Stream流
于 2022-03-24 19:42:34 首次发布