gpt4 book ai didi

java - Interleave - 在 Java 中不能正常工作

转载 作者:行者123 更新时间:2023-11-29 07:19:21 25 4
gpt4 key购买 nike

我在 java 中实现了这个交错方法,但它不能正常工作。我的错误在哪里?我想混合 2 个字符串列表。

["a","b","c"]
["1","2","3","4"]

结果应该是 = [a, 1, b, 2, c, 3, 4]但我只有 [a, 1, b, 2, c, 3]

public static List<String> interleave(List<String> list1,List<String>list2){
List<String> result= new ArrayList<String>();

for(int i=0; i<list1.size(); i++){
result.add(list1.get(i));
result.add(list2.get(i));
}
return result;
}

非常感谢。

问候, cocoa

最佳答案

错误是您只查看了 list1.size()而在您的情况下,第二个列表比第一个长。

您很可能应该改用迭代器:

Iterator<String> iterator1 = list1.iterator();
Iterator<String> iterator2 = list2.iterator();

while (iterator1.hasNext() || iterator2.hasNext())
{
if (iterator1.hasNext())
{
result.add(iterator1.next());
}
if (iterator2.hasNext())
{
result.add(iterator2.next());
}
}

可以只使用大小,找到最小的然后填充其余的,但代码可能会变得难看。此外,上述代码可推广到任意两个 Iterable<String>值,而不仅仅是 List<String> .

关于java - Interleave - 在 Java 中不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6571955/

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