gpt4 book ai didi

java - 使用循环算法从多个列表中选择数据的有效方法

转载 作者:行者123 更新时间:2023-11-29 08:36:37 28 4
gpt4 key购买 nike

我需要从多个列表中创建一个包含所有其他列表值的结果列表,方法是使用循环算法选择数据。

list1 = val1_1,val1_2 .. 
list2 = val2_1,val2_2 ..
list3 = val3_1,val3_2 ..
//rr choosing
result = val1_1,val2_1,val3_1,val1_2,val2_2,val3_2,val1_3...

每个列表中值的数量可能不同。我该怎么做?

最佳答案

您可以使用从各个列表派生的迭代器队列。从队列中获取下一个迭代器,从迭代器中获取下一个元素,如果不为空,则将其添加回队列。

List<String> lst1 = new ArrayList<>(Arrays.asList("a", "b", "c"));
List<String> lst2 = new ArrayList<>(Arrays.asList("A", "B"));
List<String> lst3 = new ArrayList<>(Arrays.asList("1", "2", "3", "4"));

Queue<Iterator<String>> iters = new LinkedList<>(Stream.of(lst1, lst2, lst3)
.map(List::iterator).collect(Collectors.toList()));

List<String> result = new LinkedList<>();
while (! iters.isEmpty()) {
Iterator<String> iter = iters.poll();
if (iter.hasNext()) {
result.add(iter.next());
iters.add(iter);
}
}
System.out.println(result); // [a, A, 1, b, B, 2, c, 3, 4]

关于java - 使用循环算法从多个列表中选择数据的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43627114/

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