首页 > 解决方案 > Java 流图用计数器创建对象

问题描述

我是 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);
}

标签: javajava-stream

解决方案


您可以利用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


推荐阅读