Java流如何在列表的嵌套列表中添加值
我有一个Java流如何在列表的嵌套列表中添加值,java,java-8,Java,Java 8,我有一个列表类型数据。我需要在列表中添加相同的值。 我尝试了以下操作,但由于其类型为List,因此无法正常工作 我想将其更改为: "data": [ [ 5, "Johnny", "Lollobrigida", "test" ], [ 6, "Bette", "Nicholson",
列表
类型数据。我需要在列表中添加相同的值。
我尝试了以下操作,但由于其类型为List
,因此无法正常工作
我想将其更改为:
"data": [
[
5,
"Johnny",
"Lollobrigida",
"test"
],
[
6,
"Bette",
"Nicholson",
"test"
],
[
7,
"Grace",
"Mostel" ,
"test"
],
[
8,
"Matthew",
"Johansson",
"test"
]
]
List.add()
返回一个boolean
,但是您希望map()
返回添加新元素的列表
你需要:
List<List<Object>> out =
data.stream()
.map(v -> {v.add("test"); return v;})
.collect(Collectors.toList());
添加元素后,需要从map
返回列表。以下解决方案适用于您:
List<List<Object>> dataModified = data.stream().map(v -> {
v.add("test");
return v;
}).collect(Collectors.toList());
List dataModified=data.stream().map(v->{
v、 添加(“测试”);
返回v;
}).collect(Collectors.toList());
@Boris蜘蛛侠是对的:使用forEach:
data.forEach(v -> v.add("test"));
list.add
有什么问题吗?为什么没有数据。forEach(l->l.add(“test”)
?我无法得到你想要做的。啊,好吧,那就不要使用map
。你是在改变内部列表,为什么还需要什么?只需使用forEach
@Seelenvirtuose即可;这是最好的地图。这两种方法都不是用来操作流的源代码的。我不明白为什么这一问题处理得如此复杂,而答案只是使用forEach
。没有必要创建流
即使在这里:)对,总是要删除更多的东西^^
List<List<Object>> out =
data.stream()
.map(v -> {
List<Object> l = new ArrayList<>(v);
l.add("test");
return l;
})
.collect(Collectors.toList());
List<List<Object>> dataModified = data.stream().map(v -> {
v.add("test");
return v;
}).collect(Collectors.toList());
data.forEach(v -> v.add("test"));