jdk1.8新特性集合部分

1
jdk1.8的stream用来处理集合,可以实现对集合的过滤,查找操作

  集合排序sorted()

1
2
3
4
5
6
7
8
9
10
11
12
List<Integer> aList = new ArrayList<>();
       aList.add(12);
       aList.add(14);
       aList.add(72);
       aList.add(42);
       aList.add(92);
       aList.add(22);
       aList.add(2);
       aList.add(10);
       aList.stream().sorted().forEach(a -> {
           System.out.println(a);
       });

  

集合元素过滤 filter

1
2
3
4
Stream<Integer> filter = aList.stream().filter(b -> b > 30);
       filter.sorted().forEach(c -> {
           System.out.println(c);
       });

  

 

 集合数据去重distinct(),通过流中元素的 hashCode() 和 equals() 去除重复元素

1
2
3
4
Stream<Integer> filter = aList.stream().distinct();
       filter.sorted().forEach(c -> {
           System.out.println("---去重后有序打印:" + c);
       });

  

获取n个元素limit(n)

1
2
3
4
Stream<Integer> filter = aList.stream().sorted().limit(3);
        filter.forEach(c -> {
            System.out.println("---获取三个元素打印:" + c);
        });

  

 

 将Stream类型转化为我们需要的集合类型

1
aList = filter.collect(Collectors.toList());

  

 

 map接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素

1
2
3
4
5
6
7
8
9
10
UmAndCustomerIdParam um=new UmAndCustomerIdParam();
       List<UmAndCustomerIdParam> paramList=new ArrayList<UmAndCustomerIdParam>();
       paramList.add(new UmAndCustomerIdParam("qiuxie002","a001"));
       paramList.add(new UmAndCustomerIdParam("qiuxie002","a002"));
       paramList.add(new UmAndCustomerIdParam("qiuxie002","a002"));
       paramList.add(new UmAndCustomerIdParam("qiuxie002","a002"));
       paramList.add(new UmAndCustomerIdParam("qiuxie002","a002"));
       paramList.add(new UmAndCustomerIdParam("qiuxie002","a002"));
       Set<String> collect = paramList.stream().map(UmAndCustomerIdParam::getOcmCustId).collect(Collectors.toSet());
       System.out.println(collect);

  

 

1
2
3
4
5
List<String> aList = dealStringList();
       List<String> collect = aList.stream().map(a -> a.replaceAll(",", "")).collect(Collectors.toList());
       collect.forEach(a -> {
           System.out.println(a);
       });

  

 

 flatMap将每个值都转换成流

1
2
3
4
5
6
7
List<String> aList = dealStringList();
       List<String> collect = aList.stream().flatMap(a -> {
           String[] split = a.split(",");
           Stream<String> stream = Arrays.stream(split);
           return stream;
       }).collect(Collectors.toList());
       System.out.println(collect);

  

count 返回流中元素的总个数

1
2
3
List<Integer> queryList = queryList();
        long count = queryList.stream().count();
        System.out.println("集合中的元素数量:" + count);

  

 

max 返回最大值

1
2
3
List<Integer> queryList = queryList();
        Integer integer = queryList.stream().max(Integer::compareTo).get();
        System.out.println("最大元素:" + integer);

  

 

 min 返回最小值

1
2
3
List<Integer> queryList = queryList();
       Integer integer = queryList.stream().min(Integer::compareTo).get();
       System.out.println("最小元素:" + integer);

  

 

posted @   不忘初心2021  阅读(138)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示