Java列表映射功能不起作用

标签 java arraylist java-stream

myList
.stream()
.map((question) -> {                    
     question.setQuestionId(UUID.randomUUID().toString());
     return question;
});

以下 java 代码未进入 map 功能。有人可以指出我在这里做错了什么吗? myList 是一个包含一些元素的 ArrayList。

最佳答案

如果您查看 java.util.stream.Stream.map 的文档,您会看到此方法返回一个新流。如果您需要保留原始列表,请使用此方法并将结果存储在新列表中:

List<...> newList = myList
                     .stream()
                     .map(question -> {                    
                       question.setQuestionId(UUID.randomUUID().toString());
                       return question;
                     })
                     .collect(Collectors.toList());

如果您只需要修改原始列表,因为 List 实现了 Iterable , 你可以使用 java.lang.Iterable.forEach :

myList.forEach(question -> question.setQuestionId(UUID.randomUUID().toString()));

关于Java列表映射功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38144028/

相关文章:

java - ArrayList困惑

java - 从 ArrayList 获取 double 的平均值

arrays - Swift 如何使用带有索引 [i] 的 for 循环读取数组的所有索引

java - List<String> 获取以另一个列表中的一个字符串结尾的所有元素的计数

使用自定义收集器的 Java 8 分组?

Java 8 如何按枚举类型合并多个列表

使用 maven 的 Java Cloudinary

java - 在java中构建读取和打印部分填充数组的方法

java - 客户端未收到服务器输出

java - 如何合并 2 个数组?