Java List Merge merge(List list1, List list2)

Here you can find the source of merge(List list1, List list2)

Description

Merges two sorted segments into a single sorted list.

License

Apache License

Declaration

public static <K extends Comparable<K>> List<K> merge(List<K> list1, List<K> list2) 

Method Source Code


//package com.java2s;
//License from project: Apache License 

import java.util.ArrayList;
import java.util.List;

public class Main {
    /**/*from w  ww. ja  v  a2  s. c o m*/
     * Merges two sorted segments into a single sorted list.
     */
    public static <K extends Comparable<K>> List<K> merge(List<K> list1, List<K> list2) {
        List<K> newList = new ArrayList<>(list1.size() + list2.size());

        int offset1 = 0;
        int offset2 = 0;

        while (!list1.isEmpty() && !list2.isEmpty()) {
            K item1 = list1.get(offset1);
            K item2 = list2.get(offset2);
            if (item1.compareTo(item2) <= 0) {
                newList.add(item1);
                list1.remove(offset1);
            } else {
                newList.add(item2);
                list2.remove(offset2);
            }

            if (offset1 == list1.size()) {
                newList.addAll(list2);
            }
            if (offset2 == list2.size()) {
                newList.addAll(list1);
            }
        }

        return newList;
    }
}

Related

  1. merge(final List aList, final List bList)
  2. merge(final String[] input, final String[] list)
  3. merge(List original, List merger)
  4. merge(List bs)
  5. merge(List left, List right)
  6. merge(List> list)
  7. merge(List l1, List l2)
  8. merge(List l1, List l2)
  9. merge(List list)