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); |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异