📅  最后修改于: 2023-12-03 15:01:53.731000             🧑  作者: Mango
在Java 8中,IntStream是一个由int值组成的顺序流。它提供了一些便利的方法来处理整数流,比如min、max、sum等,这使得我们在对整数进行一些操作时,可以更加简洁和高效。
IntStream.Builder是用于构建IntStream的助手类,它将数据逐个添加到流中,最终构建一个IntStream。接下来,让我们来看看如何使用IntStream.Builder build()方法和一些实例。
构建IntStream的步骤如下:
创建一个IntStream.Builder对象
使用add()方法逐个向流中添加int值
调用build()方法构建一个IntStream
下面是一个简单的示例,展示了如何使用IntStream.Builder构建一个包含10个随机整数的IntStream。
import java.util.Random;
import java.util.stream.IntStream;
public class IntStreamBuilderExample {
public static void main(String[] args) {
Random random = new Random();
IntStream.Builder streamBuilder = IntStream.builder();
for (int i = 0; i < 10; ++i) {
int randomNumber = random.nextInt(100);
streamBuilder.add(randomNumber);
}
IntStream intStream = streamBuilder.build();
intStream.forEach(System.out::println);
}
}
在上面的示例中,我们首先创建了一个Random对象。然后创建了一个IntStream.Builder对象。在循环中,我们使用add()方法向IntStream.Builder中逐个添加随机数。最后,我们调用build()方法,将IntStream.Builder构建为IntStream,并使用forEach()方法打印IntStream中的每个元素。
我们可以将IntStream.Builder与IntStream.range()和IntStream.rangeClosed()方法结合使用,创建一个用于给定范围的int值的IntStream。
例如,以下示例显示如何使用IntStream.Builder、IntStream.range()和IntStream.rangeClosed()创建包含1到10之间的数字的IntStream。
import java.util.stream.IntStream;
public class IntStreamBuilderWithRangeExample {
public static void main(String[] args) {
IntStream.Builder streamBuilder = IntStream.builder();
IntStream intRangeStream = IntStream.range(1, 10).filter(i -> i % 2 == 0);
intRangeStream.forEach(streamBuilder::add);
IntStream intRangeClosedStream = IntStream.rangeClosed(10, 20).filter(i -> i % 2 != 0);
intRangeClosedStream.forEach(streamBuilder::add);
IntStream finalStream = streamBuilder.build();
finalStream.forEach(System.out::println);
}
}
在上面的示例中,我们首先创建了一个IntStream.Builder对象。然后我们使用IntStream.range()和IntStream.rangeClosed()方法创建两个IntStream对象。这两个IntStream对象是通过添加过滤条件来创建的,以确保只有偶数(对于范围1到10)和奇数(对于范围10到20)被添加到IntStream中。接下来,我们使用forEach()方法将这两个IntStream对象添加到IntStream.Builder中,并使用build()方法创建最终的IntStream。最后,我们使用forEach()方法打印IntStream中的每个元素。
上述示例代码片段执行结果输出如下:
2
4
6
8
11
13
15
17
19
在本文中,我们学习了如何使用IntStream.Builder build()方法构建IntStream,并使用示例展示了如何创建包含随机数字和给定范围数字的IntStream。IntStream.Builder build()方法为处理整型数据提供了便捷的方式。