大家好,现在遇到一个问题,假如我有两个数据量较大的list分别为A和B,假如A中有1,2,3,4,B中有3,4,5,6 现在我想实现下面的要求,就是找出存在A中但不存在B中的内容,就是要找出1,2,这个功能如何实现呢,请大家给个例子,谢谢了!

解决方案 »

  1.   

    import java.util.LinkedList;
    import java.util.List;public class Test {
        public static void main(String[] args) {
            List<Integer> a = new LinkedList<Integer>();
            List<Integer> b = new LinkedList<Integer>();
            
            a.add(1);
            a.add(2);
            a.add(3);
            a.add(4);
            
            b.add(3);
            b.add(4);
            b.add(5);
            b.add(6);
            
            a.removeAll(b);
            System.out.println(a);
        }
    }
      

  2.   

    同二楼,要多看API中的方法解决此类问题
      

  3.   

    public class Test{
    public static void main(String[] args) {
    List<Integer> aList = new ArrayList<Integer>();
    List<Integer> bList = new ArrayList<Integer>();
    Collections.addAll(aList, 1,2,3,4);
    Collections.addAll(bList, 3,4,8);
    aList.retainAll(bList);
    System.out.println(aList.toString());
    }
    }
      

  4.   

    import java.util.ArrayList;public class test {
        public static void main(String[] args) {  
         ArrayList list1=new ArrayList();
         ArrayList list2=new ArrayList();
         list1.add(1);
         list1.add(2);
         list1.add(3);
         list1.add(4);
         list2.add(3);
         list2.add(4);
         list2.add(5);
         list2.add(6);
         for(int i=0;i<list2.size();i++)
         {
         for(int j=0;j<list1.size();j++)
         {
         if(list2.get(i).equals(list1.get(j)))
         {
         System.out.println(list1.get(i));
         }
         }
        
         }
        }
    }
      

  5.   

    还有一个种比较愚笨的方法就是双重for循环