我这里有两个List
List list1 = {1,2,3,4,5,6,7,8,9};
List list2 = {1,2,3,4,5,};
我需要饭后list1 和 list2的差集。
即,返回结果如下:
List list3 = {6,7,8,9};
不知道应该怎么做?希望大家帮一下!

解决方案 »

  1.   

    import java.util.*;
    public class Test46 {
    public static void main(String[] args) {
    Integer[] array1 = {1,2,3,4,5,6,7,8,9};
    Integer[] array2 = {1,2,3,4,5,};
    List<Integer> list1 = new ArrayList<Integer>();
    list1.addAll(Arrays.asList(array1));
    List<Integer> list2 = new ArrayList<Integer>();
    list2.addAll(Arrays.asList(array2));
    List<Integer> list3 = new ArrayList<Integer>();
    list3.addAll(list1);
    list3.removeAll(list2);
    System.out.println(list3);
    }
    }
      

  2.   

    List<Integer> list1 = {1,2,3,4,5,6,7,8,9};
    List<Integer> list2 = {1,2,3,4,5,};
    //上面两行是伪代码
    List<Integer> list3 = new ArrayList<Integer>();
    for(Integer i:list1){
    if(!list2.contains(i)){
    list3.add(i);
    }
      

  3.   

    可以先将list1,list2进行排序,然后再进行一次for的遍历就搞定。
      

  4.   

    list1.removeAll(list2); //=list1-list2
      

  5.   

    同意 malligator(只在此山中) 的
    list1.removeAll(list2); 
      

  6.   

    public static void main(String[] args) {

    List list1 = createList(9);
    List list2 = createList(5);
    list1.removeAll(list2);
    System.out.println(list1);
    }
        public static List createList(int number){
         ArrayList list = new ArrayList();
         for(int i=1;i<=number;i++){
         list.add(new Integer(i));
         }
         return list;
        }