数组a["1","2","3"]
数组b["2","3","5"]
怎么最高效率的找出a在b里没有的数组结果,以及b在a里没有的数组结果
结果应该是数组c["1"]和d["5"]

解决方案 »

  1.   


    public   static   void   main(String[]args) 

       String a[]= {"1","2","3"};
       String b[]={"2","3","5"};
       List l1=new ArrayList(Arrays.asList(a));
       List l2=new ArrayList(Arrays.asList(b));
       List l3=new ArrayList(Arrays.asList(a));
       List l4=new ArrayList(Arrays.asList(b));
       l1.removeAll(l2);
       System.out.println(l1);
       l4.removeAll(l3);
       System.out.println(l4);

      

  2.   

    用 API  的速度很慢
      

  3.   

    package com.xuz.csdn.worldcup.day11;import java.util.Arrays;
    import java.util.HashSet;
    import java.util.Set;public class ArrayCompare { public static void main(String[] args) {
    String[] s1 = {"1","2","3"};
    String[] s2 = {"4","2","3"};
    Set<String> set = new HashSet<String>();
    set.addAll(Arrays.asList(s1));
    set.addAll(Arrays.asList(s2));
    System.out.println(set); //合集

    Set<String> set2 = new HashSet<String>();
    set2.addAll(Arrays.asList(s1));
    set2.retainAll(Arrays.asList(s2));
    System.out.println(set2); //交集

    Set<String> set3 = new HashSet<String>();
    set3.addAll(Arrays.asList(s1));
    set3.removeAll(Arrays.asList(s2));
    System.out.println(set3); //补集
    }}
    API还慢?
      

  4.   

    学习这个方法了!!l1.removeAll(l2);
      

  5.   

    2楼的思想很好,可以自己手工实现,提高效率。
    数组a["1","2","3"]
    数组b["2","3","5"]
    结果数组c[]
    结果数组d[] 
    先初始化c和a一样,d和b一样。
    d["2","3","5"]
    从数组c中依次取元素,然后在数组d中找到一样的就删除掉,考虑重复,同时在c中删除。没找到就保留,找完后两个数组里剩下的都是对方数组里没有的
      

  6.   

    import java.util.HashMap;
    public class test {
    public static void main(String[] args) {
    HashMap map = new HashMap();
    String a[] = {"1","2","3"};
    String b[] = {"2","3","5"};
    for(int i = 0; i < a.length; i++){
    map.put(a[i], "");
    }
    for(int i = 0; i < b.length; i++){
    if(map.get(b[i]) == null){
    map.put(b[i], "");
    }else{
    map.remove(b[i]);
    }
    }
    //结果输出:
    Object[] object = map.keySet().toArray();
    for(int i = 0; i < object.length; i++){
    System.out.println(object[i]);
    }
    }}这个代码是我想出来的,提供参考,但是不知效率如何??
      

  7.   

    用那些较复杂的对象Arrays、HashTable能够实现,
    可那是最简单的方法吗?
    我看还不如自己循环比较呢。
      

  8.   

    把数组里的值当map的键 存起来 然后根据键到数组取值,取得到的就是存在的 取不到自然不存在!