java - 使用 Stream API 创建对象初始化循环

标签 java java-8 java-stream

我有一组可用列表形式提供的常量值。使用这些值,我必须创建一个键值对对象,并且必须将此对象添加到列表中。我想在 JAVA 8 中使用 Stream API 来实现这一点。下面是使用 for 循环的示例实现

for (int i=0; i<length; i+=2){    
    list.add(new sampleObject(constant[i],constant[i+1]);
}

这可以使用 Stream 缩减操作来实现吗?

最佳答案

使用 IntStream.limit() 生成无限 IntStream 的链 IntStream.iterate() 使其有限:

List<sampleObject> list = 
    IntStream.iterate(0, i -> i + 2)
              .limit(Math.ceil(length / 2D))
              .mapToObj(i -> new sampleObject(constant[i], constant[i+1]))
              .collect(Collectors.toList());

关于java - 使用 Stream API 创建对象初始化循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49456080/

相关文章:

java - Spring Data JDBC @Modifying 与 PostgreSQL RETURNING 从修改的行返回数据

Java 反射 isArray() 始终为 false

Java - 数组类型到对象类型的转换

java - CompletableFuture supplyAsync

java - 如何使用流加入非字符串对象列表

java - 在注销期间是否足以破坏用户 session ?

java - 如何将 sourceCompatability 设置为 javaVersion.VERSION_1_8

java - 如何为 Java 8 中的每个元素流调用不同的函数?

java - 如何在 Java 8 中引用 reduce() 操作的结果?

java 8流映射检查先前的元素