Java流Stream学习(3)
【摘要】 结束操作迭代 forEach结束操作: forEach 迭代流中的每个数据,即对每个数据进行最后的处理(比如保存到数据库中或打印)。// 输出 10 个随机数 Random random = new Random();random.ints().limit(10).forEach(System.out::println);Copy to clipboardErrorCopied不要用 for...
结束操作
迭代 forEach
结束操作: forEach
迭代流中的每个数据,即对每个数据进行最后的处理(比如保存到数据库中或打印)。
// 输出 10 个随机数
Random random = new Random();
random.ints().limit(10).forEach(System.out::println);Copy to clipboardErrorCopied
不要用 forEach 方法收集元素!stream 并行执行会损害正确性和效率,使用下方操作。
聚合 Collectors
结束操作:Collectors
类实现了归约操作,例如将流转换成集合和聚合元素,可用于返回列表或字符串。
// Stream 转化为 List
List<String>strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
List<String> filtered = strings.stream()
.filter(string -> !string.isEmpty())
.collect(Collectors.toList());
System.out.println("筛选列表: " + filtered);
// Stream 转化为 String
String mergedString = strings.stream()
.filter(string -> !string.isEmpty())
.collect(Collectors.joining(", "));
System.out.println("合并字符串: " + mergedString);Copy to clipboardErrorCopied
统计 SummaryStatistics
结束操作:收集最终产生的统计结果,它们主要用于 int、double、long 等基本类型上。
List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
IntSummaryStatistics stats = numbers.stream()
.mapToInt((x) -> x)
.summaryStatistics();
System.out.println("列表中最大的数 : " + stats.getMax());
System.out.println("列表中最小的数 : " + stats.getMin());
System.out.println("所有数之和 : " + stats.getSum());
System.out.println("平均数 : " + stats.getAverage());
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)