【问题标题】:Sorting Integer ArrayLists manually手动对整数数组列表进行排序
【发布时间】:2014-02-05 04:51:44
【问题描述】:

给定两个不同大小的数组列表,我需要在一个新的 ArrayList 中返回它们的排序联合。

这里是代码。我不断收到数组越界错误,如果我不按照它们生成的顺序(随机)排列它们。

public static ArrayList<Integer> merge(ArrayList<Integer> l1, ArrayList<Integer> l2) {
    int i = 0;
    int pointer1 = 0;
    int pointer2 = 0;
    ArrayList<Integer> list = new ArrayList<Integer>();
    while (list.size() < ((l1.size() + l2.size()))) {
        if (pointer1 < 11 && pointer2 < 21) {
            if (l1.get(pointer1) == l2.get(pointer2)) {
                list.add(l1.get(pointer1));
                list.add(l2.get(pointer2));
                pointer1++;
                pointer2++;
            } else if (l1.get(pointer1) > l2.get(pointer2)) {
                list.add(l1.get(pointer1));
                pointer1++;
            } else if (l2.get(pointer2) > l1.get(pointer1)){
                list.add(l2.get(pointer2));
                pointer2++;
            }
        } else if (pointer2 < 20) {
            list.add(l2.get(pointer2));
            pointer2++;
        } else if (pointer1 < 10) {
            list.add(l2.get(pointer2));
            pointer2++;
        }
    }

    return list;
}

【问题讨论】:

    标签: arrays list sorting arraylist integer


    【解决方案1】:

    你好下面是合并和排序两个ArrayList的简单代码。希望对你很有帮助..

    public static ArrayList<Integer> merge(ArrayList<Integer> l1, ArrayList<Integer> l2) {
            ArrayList<Integer> list = new ArrayList<Integer>();
            list.addAll(l1);
            list.addAll(l2);
            Collections.sort(list);
            return list;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-13
      • 2012-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-03
      • 2010-10-26
      相关资源
      最近更新 更多