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

标签 java

我一直在尝试将两个已经按字母顺序排序的字符串数组列表合并为一个大的数组列表,该数组列表也按字母顺序排序。最好使用一个循环来完成此操作,但两个循环也可以。此外,还必须使用 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/

相关文章:

java - 通过 Hamcrest 断言集合中匹配元素的数量

java - 如何安装免费的 IBM WebSphere Application Server for Developers

java - Hibernate 与子表连接

java - Hibernate 在调用 saveOrUpdate 时执行不需要的 SELECT

java - 如何从 https ://randomuser. me/api/读取 android 中的 json 文件

java - 在 viewpager fragment 之间传递参数

java - 从java发布到php并将其插入mysql数据库

java - Dagger 组件从应用程序类获取?

java - Hibernate LAZY Fetch VS 乐观锁版本

java - 将多个过滤器应用于 Java 中的 map