Jremy
Jremy

Reputation: 83

What process can be used to compare elements from two separate lists?

I need to first access and then compare elements from two separate lists and based on whichever element has the smaller value, remove the lesser element and assign it a position within a third list. How do I accomplish this?

Upvotes: 0

Views: 116

Answers (2)

Yogendra Singh
Yogendra Singh

Reputation: 34367

Just for your learning, find a sample manual merge program below:

    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);
        }
    }

Upvotes: 0

Yogendra Singh
Yogendra Singh

Reputation: 34367

I believe you can just add the elements of both the list in a new list of one of the list and then sort it in ascending order e.g. below(pseudo code):

    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);

Now mergedList should have sorted elements.

Upvotes: 1

Related Questions