📜  Java中的 IntStream.Builder build() 和示例(1)

📅  最后修改于: 2023-12-03 15:01:53.731000             🧑  作者: Mango

Java中的 IntStream.Builder build() 和示例

在Java 8中,IntStream是一个由int值组成的顺序流。它提供了一些便利的方法来处理整数流,比如min、max、sum等,这使得我们在对整数进行一些操作时,可以更加简洁和高效。

IntStream.Builder是用于构建IntStream的助手类,它将数据逐个添加到流中,最终构建一个IntStream。接下来,让我们来看看如何使用IntStream.Builder build()方法和一些实例。

构建 IntStream

构建IntStream的步骤如下:

  1. 创建一个IntStream.Builder对象

  2. 使用add()方法逐个向流中添加int值

  3. 调用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.range()和IntStream.rangeClosed() 一起使用

我们可以将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()方法为处理整型数据提供了便捷的方式。