gpt4 book ai didi

java - 根据相似索引收集列表集合

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:58:57 26 4
gpt4 key购买 nike

我有一个像这样的集合: List<List<Object>> firstList

我想将类似的模式列表组合在一起: List<List<Object>> secondList但按索引分组。

firstList [1]:
0 = {Object A}"
1 = {Object B}"
2 = {Object C}"

firstList [2]:
0 = {Object A}"
1 = {Object B}"
2 = {Object C}"

我想将这个集合分组为

secondList [1]:
0 = {Object A}"
1 = {Object A}"

secondList [2]:
0 = {Object B}"
1 = {Object B}"

secondList [3]:
0 = {Object C}"
1 = {Object C}"

到目前为止我尝试过的是

for (int i = 0; i <firstList.size() ; i++) {
List<Object> list = firstList.get(i);
List<Object> rlPr = new ArrayList<>();

for (int j = 0; j <list.size()-1; j++) {
rlPr.add(list.get(i));
}
secondList.add(rlPr);
}

但我没有得到预期的结果。我正在使用 Java 8。

编辑:所有列表的大小都相同

最佳答案

您可以使用 Map 按索引对值进行分组:

Map<Integer, List<Object>> map = new TreeMap<>();
for (List<Object> objects : firstList) {
for (int i = 0, l = objects.size(); i < l; i++) {
map.computeIfAbsent(i, k -> new ArrayList<>()).add(objects.get(i));
}
}

然后返回 List:

List<List<Object>> secondList = new ArrayList<>(map.values());

关于java - 根据相似索引收集列表集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54650704/

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