java - 使用以另一个列表的长度为基础的流迭代列表

标签 java java-stream

我想使用流执行此类操作:

List<String> listX = new ArrayList<>();
        for(int i=0;i<listY.size();i++){
            listX.add(String.format(ABC,i));
        }

所以我必须使用另一个列表的长度迭代一个列表,并另外使用计数器 i。毕竟我想返回新列表

最佳答案

使用 IntStream.range & IntStream.mapToObj方法。并且不要在流 api 中操作 lambda 表达式之外的变量,这将导致 Thread InterferenceMemory Consistency Errors在并行流中。

List<String> listX = IntStream.range(0, listY.size())
                              .mapToObj(i -> String.format(ABC,i))
                              .collect(Collectors.toList());

关于java - 使用以另一个列表的长度为基础的流迭代列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43293733/

相关文章:

java - 在流中添加 MathContext

Java 8 流和简单类型

java - 将 java 7 嵌套 for 循环转换为使用 java 8 流 API

java jaxb意外元素解码

java - 无法让 freemarker 模板在 reSTLet 上运行,所使用的协议(protocol)未在客户端连接器中声明

java - Jetty 中的 Hibernate 4 TransactionManagerLookup

java - 如何使用新的 1.8 流 API 连接字符串

java - 替换 ArrayAdapter 列表

java - 配置 spring-boot 项目使用 SSL 后响应为空

java 8并行流按给定值组织列表