gpt4 book ai didi

java - 如何将 2 个 Arraylist 合并为 1 个按字母顺序排序的 Arraylist

转载 作者:行者123 更新时间:2023-12-01 17:58:44 28 4
gpt4 key购买 nike

我一直在尝试将两个已经按字母顺序排序的字符串数组列表合并为一个大的数组列表,该数组列表也按字母顺序排序。最好使用一个循环来完成此操作,但两个循环也可以。此外,还必须使用 comapreTo 方法来比较字符串。这就是我所拥有的,但它不起作用。对您来说,重新开始可能会更好,因为这可能写得不太好。

public static ArrayList<String> merge(ArrayList<String> al1, ArrayList<String> al2){
ArrayList<String> result = new ArrayList<String>();

int longLength = al1.size() > al2.size() ? al1.size():al2.size();

for(int i=0;i<longLength;i++){
if(al1.size() > i && al2.size() > i && al1.get(i).compareTo(al2.get(i)) >= 0){
result.add(al2.get(i));
}
else if(al1.size() > i && al2.size() > i && al1.get(i).compareTo(al2.get(i)) < 0) {
result.add(al1.get(i));
}
else if(al1.size() > i && al2.size() <= i) {
result.add(al1.get(i));
}
else if(al1.size() <= i && al2.size() > i) {
result.add(al2.get(i));
}
}
return result;
}

最佳答案

使用addAll()将list2的所有元素添加到list1,然后使用实用类Collections对它们进行排序

  • addAll() 将 list2 的所有元素追加到 list1 的末尾。

  • Collections.sort() 根据其元素的自然顺序对指定列表进行升序排序

示例:

public class Main {
public static void main(String[] args) {
List<String> list1 = new ArrayList<>();
list1.add("a");
list1.add("c");

List<String> list2 = new ArrayList<>();
list2.add("b");

list1.addAll(list2);// the order is "a" "c" "b" now
Collections.sort(list1);

for(String e: list1){
System.out.println(e);
}
}
}

输出:

a
b
c

关于java - 如何将 2 个 Arraylist 合并为 1 个按字母顺序排序的 Arraylist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42561297/

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