gpt4 book ai didi

java - 如何使用内部列表流式传输列表

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:37:59 25 4
gpt4 key购买 nike

我需要一些有关 Java 8 流的帮助。我有一个名称列表,其中包含一个内部整数列表,如下代码和示例:

public class Test {

private String name;
private List<Integer> nrList;

public Test() {
}

public Test(String name, List<Integer> nrList) {

this.name = name;
this.nrList = nrList;
}

public String getName() {
return name;
}

public List<Integer> getNrList() {
return nrList;
}
}

例如,我想要这个:

1. Alex 10 15
2. Steve 5
3. Bob 3 16 20

像这样流入一个冗余的名字列表:

1. Alex 10
2. Alex 15
3. Steve 5
4. Bob 3
5. Bob 16
6. Bob 20

如何使用 Java 8 流处理这个问题?

最佳答案

您可以使用 flatMap为内部列表的每个元素生成一个唯一元素。

例如,如果您希望输出为 List<String>每个String是名称和相应整数之一的串联:

List<Test> input = ...
List<String> output = input.stream()
.flatMap(t->t.getNrList().stream().map(i->t.getName() + " " + i))
.collect(Collectors.toList());

当然你可以生成一个List任何元素类型作为输出(例如,List<Test> 输出,其中每个 Test 实例的内部列表只有一个元素),具体取决于您的要求。您只需更改传递给 map 的映射函数生成所需的实例。

关于java - 如何使用内部列表流式传输列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38370306/

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