Java中IntStream的详细用法及典型案例

一、基础创建方式

复制代码

javaCopy Code

// 1. range范围生成(不包含结束值) IntStream.range(1, 5).forEach(System.out::print); // 输出1234 // 2. rangeClosed范围生成(包含结束值) IntStream.rangeClosed(1, 5).forEach(System.out::print); // 输出12345 // 3. 直接生成值 IntStream.of(10, 20, 30).forEach(System.out::println);


二、典型应用场景

案例1:数组索引遍历
复制代码

javaCopy Code

String[] fruits = {"Apple", "Banana", "Cherry"}; IntStream.range(0, fruits.length) .forEach(i -> System.out.println(i + ":" + fruits[i]));

案例2:数学计算
复制代码

javaCopy Code

// 计算1-100偶数和 int sum = IntStream.rangeClosed(1, 100) .filter(n -> n % 2 == 0) .sum(); System.out.println(sum); // 输出2550

案例3:生成随机数流
复制代码

javaCopy Code

new Random().ints(5, 0, 100) // 5个0-100随机数 .sorted() .forEach(System.out::println);


三、高级操作

1. 装箱转换
复制代码

javaCopy Code

List<Integer> list = IntStream.range(1, 4) .boxed() // 转为Stream<Integer> .collect(Collectors.toList());

2. 并行处理
复制代码

javaCopy Code

IntStream.range(1, 10) .parallel() // 并行流 .map(n -> n * 2) .forEachOrdered(System.out::println);

3. 统计汇总
复制代码

javaCopy Code

IntSummaryStatistics stats = IntStream.of(5, 8, 3, 2) .summaryStatistics(); System.out.println("平均值: " + stats.getAverage());


四、特性说明

  1. 惰性求值‌:中间操作不会立即执行
  2. 不可复用‌:流消费后需重新创建
  3. 性能优势‌:避免自动装箱开销
  4. 链式调用‌:支持filter/map/reduce等组合操作

五、完整示例:质数筛选

复制代码

javaCopy Code

IntStream.rangeClosed(2, 100) .filter(n -> IntStream.rangeClosed(2, (int)Math.sqrt(n)) .noneMatch(i -> n % i == 0)) .forEach(p -> System.out.print(p + " ")); // 输出2-100之间的质数

相关推荐
lhldsg5 小时前
全民健身解决方案小程序开发:从0到1的技术实战
java·数据库·需求分析
jason成都6 小时前
Spring WebFlux 适配达梦新方案|dm‑r2dbc:Netty 异步传输的实验性 R2DBC 驱动
java·后端·spring
泡海椒6 小时前
内置SPI函数库详解:JQuick-Java Builtin工具类实战用法
java·开发语言·python
辰烨chenye6 小时前
LeetCode Hot 100 题解 · 二分篇
java·算法·leetcode
小羊没烦恼!6 小时前
Hello Web API系列教程——Web API与国际化
java·服务器·前端·javascript·php
小荷才露尖尖角,早有蜻蜓立上头8 小时前
过滤器的4种创建方式
java
大圣编蚕8 小时前
Java ByteArrayInputStream 详解:从入门到实战
java·开发语言·算法
程序员阿明8 小时前
idea把插件啥的不默认放在C盘
java·ide·intellij-idea
linweidong9 小时前
中科闻歌Java面试题及参考答案
java·python·大模型·提示词·ai agent·mcp·rag原理
OpenAnolis小助手9 小时前
一句话看透 JVM,SysOM 诊断 Skill 新增 Java 应用诊断能力
java·开发语言·jvm·阿里云·操作系统控制台·sysom