1. 程式人生 > >兩個有序的List合併 並保持有序

兩個有序的List合併 並保持有序

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

public class SortList {

	public static List<Integer> sort(List<Integer> list1 , List<Integer> list2){
		List<Integer> list = new ArrayList<Integer>();
		int i = 0 , j = 0;
		while(i < list1.size() && j < list2.size()){
			if(list1.get(i) < list2.get(j)){
				list.add(list1.get(i++));
			}else{
				list.add(list2.get(j++));
			}
		}
		while(i < list1.size()){
			list.add(list1.get(i++));
		}
		while(j < list2.size()){
			list.add(list2.get(j++));
		}
		return list;
	}
	
	public static void main(String[] args) {
		List<Integer> list1 = new ArrayList<Integer>();
		list1.add(1);
		list1.add(2);
		list1.add(4);
		list1.add(7);
		list1.add(9);
		list1.add(10);
		list1.add(13);
		list1.add(16);
		list1.add(19);
		
		List<Integer> list2 = new ArrayList<Integer>();
		list2.add(0);
		list2.add(3);
		list2.add(5);
		list2.add(8);
		list2.add(11);
		list2.add(17);
		list2.add(25);
		list2.add(30);
		
		System.out.println(SortList.sort(list1, list2));
	}
	
}