gpt4 book ai didi

java - 如何将两个按字典顺序排列的字符串 ArrayList 合并到一个新的第三个 ArrayList 中?

转载 作者:行者123 更新时间:2023-11-29 07:35:12 24 4
gpt4 key购买 nike

如何在不修改两个原始列表的情况下将两个按字典顺序排列的字符串 ArrayList 合并到新的第三个 ArrayList 中?例如,允许重复。如果 list1 是:1、3、5 而 list2 是:2、4、7、8、8。那么新合并的 list3 应该是:1、2、3、4、5、7、8、8。我需要创建 2 个 while 循环,第一个循环直到遍历整个列表,第二个循环从另一个列表中取出剩余元素并将所有剩余元素放在新列表 3 的末尾。我基本上需要比较两个列表索引以查看哪个元素前进。一切都应该是正确的,但我需要帮助来制作 while 循环。

抱歉,描述太长了,但我会投票给任何有帮助的人!谢谢!

public class Merge{
public static boolean isStringArrayListSorted(ArrayList<String> data) {
for (int i = 1; i < data.size(); i++) {
if (data.get(i - 1).compareTo(data.get(i)) > 0) {
return false;
}
}
return true;
}

public Merge (ArrayList<String> list1, ArrayList<String> list2){

ArrayList<String> list3 = new ArrayList<String>();

list1.add(0, "a");
list1.add(1, "c");
list1.add(2, "e");
list1.add(3, "g");

list2.add(0, "b");
list2.add(1, "d");
list2.add(2, "f");
list2.add(3, "h");
list2.add(4, "i");
list2.add(5, "j");

while(list1!= null){
if(list1.get(0)> list2.get(0))
{
list3.add(index, element);
}
}
}

最佳答案

假设你真的想做一个合并而不是将两者结合起来再排序,它是一个简单的合并代码,如下所示:

public static ArrayList<String> merge(ArrayList<String> L1, ArrayList<String> L2) {
int i1 = 0, i2 = 0;
ArrayList<String> result = new ArrayList<String>();

while (i1 < L1.size() && i2 < L2.size()) {
if (L1.get(i1).compareTo(L2.get(i2)) < 0) {
result.add(L1.get(i1));
i1++;
} else {
result.add(L2.get(i2));
i2++;
}
}

while (i1 < L1.size()) {
result.add(L1.get(i1));
i1++;
}

while (i2 < L2.size()) {
result.add(L2.get(i2));
i2++;
}

return result;
}

关于java - 如何将两个按字典顺序排列的字符串 ArrayList 合并到一个新的第三个 ArrayList 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36613436/

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