可以使用什么过程来比较两个单独列表中的元素?

时间:2012-10-07 03:47:33

标签: java list compare

我需要先访问然后比较两个单独列表中的元素,并根据具有较小值的元素,删除较小元素并在第三个列表中为其分配位置。我该如何做到这一点?

2 个答案:

答案 0 :(得分:1)

我相信您只需将列表中的元素添加到其中一个列表的新列表中,然后按升序对其进行排序即可。下面(伪代码):

    List<Integer> list1 = Arrays.asList(2,4,5);
    List<Integer> list2 = Arrays.asList(2,6,8,9,12,56);

    List<Integer> mergedList = new ArrayList<Integer>();
    mergedList.addAll(list1);
    mergedList.addAll(list2);
    Collections.sort(mergedList);

现在mergedList应该有已排序的元素。

答案 1 :(得分:0)

仅供您学习,请在下方找到示例手动合并计划

    List<Integer> list1 = Arrays.asList(2,4,5);
    List<Integer> list2 = Arrays.asList(2,6,8,9,12,56);

    List<Integer> mergedList1 = new ArrayList<Integer>();
    mergedList1.add(list1.get(0));

    for(int indx = 1; indx< list1.size(); indx++){
        int valueToMerge = list1.get(indx);
        boolean merged = false;
        for(int indx1 = 0; indx1< mergedList1.size(); indx1++){
            if(mergedList1.get(indx1) > valueToMerge){
                //add the value in middle
                mergedList1.add(indx1, valueToMerge);
                merged = true;
                break;
            }
        }
        if(!merged){
            //add the value in the end
            mergedList1.add(valueToMerge);
        }
    }

    for(int valueToMerge: list2){
        boolean merged = false;
        for(int indx1 = 0; indx1< mergedList1.size(); indx1++){
            if(mergedList1.get(indx1) > valueToMerge){
                //add the value in middle
                mergedList1.add(indx1, valueToMerge);
                merged = true;
                break;
            }
        }
        if(!merged){
            //add the value in the end
            mergedList1.add(valueToMerge);
        }
    }