我这有种解法: 1、将list1和list2进行合并,在合并过程中去重。 2、用Collections.sort()进行排序就行了。代码如下: List<Integer> list = new ArrayList<Integer>(); for (Integer i : list2) { if (list.indexOf(i) == -1) { list.add(i); } } for (Integer i : list1) { if (list.indexOf(i) == -1) { list.add(i); } } Collections.sort(list);
public List sort(List<Integer> list1,List<Integer> list2){ List<Integer> list = new ArrayList<Integer>(); int i = 0; int j = 0; int length_i= list1.size(); int length_j= list2.size(); while(i<length_i&&j<length_j){ if(list1.get(i)<list2.get(j)){ list.add(list1.get(i)); i++; } else if(list1.get(i)==list2.get(j)){ list.add(list1.get(i)); i++; j++; } else if(list1.get(i)>list2.get(j)){ list.add(list2.get(j)); j++; } } return list; } }这里提醒你,你也可以把list1和list2加入一个List里后再比较也行。
第3个回答 2010-05-21
上面几位的方法太麻烦了 我这里有个很简单的办法 几行代码搞定:
HashSet<Integer> hSet = new HashSet<Integer>(); //用set是为了去掉重复元素
for (Integer i : list1) hSet.add(i);
for (Integer i : list2) hSet.add(i);
ArrayList<Integer> list = new ArrayList<Integer>(hSet); //这里满足结果为list