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之间的质数

相关推荐
超级大只老咪5 小时前
数组相邻元素比较的循环条件(Java竞赛考点)
java
小浣熊熊熊熊熊熊熊丶5 小时前
《Effective Java》第25条:限制源文件为单个顶级类
java·开发语言·effective java
毕设源码-钟学长5 小时前
【开题答辩全过程】以 公交管理系统为例,包含答辩的问题和答案
java·eclipse
啃火龙果的兔子6 小时前
JDK 安装配置
java·开发语言
星哥说事6 小时前
应用程序监控:Java 与 Web 应用的实践
java·开发语言
派大鑫wink6 小时前
【JAVA学习日志】SpringBoot 参数配置:从基础到实战,解锁灵活配置新姿势
java·spring boot·后端
xUxIAOrUIII6 小时前
【Spring Boot】控制器Controller方法
java·spring boot·后端
Dolphin_Home6 小时前
从理论到实战:图结构在仓库关联业务中的落地(小白→中级,附完整代码)
java·spring boot·后端·spring cloud·database·广度优先·图搜索算法
醇氧6 小时前
org.jetbrains.annotations的@Nullable 学习
java·开发语言·学习·intellij-idea
Java&Develop6 小时前
Aes加密 GCM java
java·开发语言·python