java8 Arrays 的使用
Stream<String> stream = Stream.of("a","b","c"); List<String> upperList = stream.parallel() .map(String::toUpperCase) .collect(Collectors.toList()); List<Integer> list = Arrays.asList(1,2,3,4,5); List<Integer> res = list.parallelStream() .filter(value -> value > 2) .collect(Collectors.toList());
并行处理数组
Java 8 还为数组提供了并行处理的方法,这些方法加在 Arrays 工具类上。方法列表如下:
Arrays.parallelPrefix:任意给定一个函数,计算数组的和;
Arrays.parallelSetAll:使用 Lambda 表达式更新数组元素;
Arrays.parallelSort:数组排序。
下面演示一下如何使用这些方法。在下面的代码中,先用 parallelSetAll 方法初始化数组,填充随机数;然后调用 parallelSort 方法并行排序;最后调用 parallelPrefix 方法,使用 Integer::sum 方法引用,计算出数组的和。
int[] array = new int[10]; //初始化 Arrays.parallelSetAll(array, i -> new Random().nextInt(100)); System.out.println(Arrays.toString(array)); //排序 Arrays.parallelSort(array); System.out.println(Arrays.toString(array)); //累加 Arrays.parallelPrefix(array, Integer::sum); System.out.println(Arrays.toString(array));
strem api 最常用:
1.集合的遍历:
1.1 forEach and list
java7
List<String> items = new ArrayList<>(); items.add("A"); items.add("B"); items.add("C");for(String item : items){ System.out.println(item); }
java8:
List<String> items = new ArrayList<>(); items.add("A"); items.add("B"); items.add("C");//lambda //Output : A,B,C,D,E items.parallelStream().forEach(item->System.out.println(item)); //Output : C items.forEach(item->{ if("C".equals(item)){ System.out.println(item); } }); //method reference //Output : A,B,C,D,E items.forEach(System.out::println); //Stream and filter //Output : B items.stream() .filter(s->s.contains("B")) .forEach(System.out::println);
1.2. forEach for Map
java7
Map<String, Integer> items = new HashMap<>(); items.put("A", 10); items.put("B", 20); items.put("C", 30); for (Map.Entry<String, Integer> entry : items.entrySet()) { System.out.println("Item : " + entry.getKey() + " Count : " + entry.getValue()); }
java8:
Map<String, Integer> items = new HashMap<>(); items.put("A", 10); items.put("B", 20); items.put("C", 30); items.parallelStream().forEach((k,v)->System.out.println("Item : " + k + " Count : " + v)); items.forEach((k,v)->{ System.out.println("Item : " + k + " Count : " + v); if("E".equals(k)){ System.out.println("Hello E"); } });
2.数据的过滤 请参考:java8 stream API ListUtils 对 list 数据 分组 ,统计,求和 。。。--https://www.cnblogs.com/lshan/p/10861629.html
分类:
java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?