Java流图用计数器创建对象

标签 java java-stream

我对 Java 及其流功能不熟悉。如何使用流而不是循环来实现此循环功能:

List<PackageData> packages = new ArrayList<>();
for(int i = 0; i < 100; i++) {
    PackageData packageData = ImmutablePackageData.builder()
            .withPackageGroup("ConstantString")
            .withPackageType("ConstantString")
            .withTrackingId("ConstantString" + i.toString())
            .withLocationId("ConstantString" + i.toString())
            .build();

    packages.add(packageData);
}

最佳答案

您可以利用IntStream

List<PackageData> packages = IntStream.range(0, 100)
     .mapToObj(i -> ImmutablePackageData.builder()
                .withPackageGroup("ConstantString")
                .withPackageType("ConstantString")
                .withTrackingId("ConstantString" + i)
                .withLocationId("ConstantString" + i)
                .build())
     .collect(Collectors.toList())

因为您的流只依赖于一系列整数[0, 100)

检查IntStream#range ,和IntStream#mapToObj

关于Java流图用计数器创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57048667/

相关文章:

Java 8 泛型和类型推断问题

junit - Java GC 开销限制错误使用 JUnit 5 TestFactory 和大量的 dynamicTest (DynamicContainer/DynamicNode)

java - 函数式风格验证算法

java - 如何在 Java 8 中从 CompletableFuture<List<CustomObject>> 获取结果

java - Wiremock Stand alone - 如何使用请求数据操作响应

java - 在 android 中单击按钮时无法从 fragment 加载 Intent

java - 将接口(interface)转换为RMI接口(interface)

java - 用于净化文本的 Lucene 库(复数、动词......)

java - 如何在 Java 8 流 api 中实现不变性

java - 如何使用 Java 8 流 API 转换我的代码?