gpt4 book ai didi

java - 将列表中的列表提取为单个列表

转载 作者:行者123 更新时间:2023-12-01 12:39:22 25 4
gpt4 key购买 nike

我有两个 POJO,
下面的示例代码

class A {
String name;
Object entries; // this can be a List<String> or a string - hence Object datatype
//getters and setter here
}

class B {
int snumber;
List<A> values;
//getters and setters here
}

Controller 类
class ControllerA {
public getList(B b) {
List<String> list = b.getValues().stream.map(e -> e.getEntries()).collect(Collectors.toList()));
}
}

这会返回一个列表列表:
[[12345, 09876], [567890, 43215]]

但我想要的是一个像
[12345,09876,567890, 43215]

我怎样才能用 Java 8 流做到这一点?

我试过 flatMap也,但这与 Object 不符条目的数据类型。

最佳答案

考虑一个 List<String>作为字段 entriesA类(class)。

@Eugene在评论中提到,

If it's a single String make it a List of a single element; if it's a list of multiple strings make it as such.



使用单一类型的集合可以简化过程:
b.getValues()                           // -> List<A>
.stream() // -> Stream<A>
.map(A::getEntries) // -> Stream<List<String>>
.flatMap(Collection::stream) // -> Stream<String>
.collect(Collectors.toList()); // -> List<String>

关于java - 将列表中的列表提取为单个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43650176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com