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"));