String[] a={"999000682", "999000680", "999000682", "999000682"};String[] b={"999000760", "999000682", "999000720", "999000721"};上面的两个数组中,我想找到存在于a中但不存在b于中的元素,即"999000680",
用JAVA,怎么写呢?

解决方案 »

  1.   

    土点就是双重循环了,逐个对比检查。偷鸡点,就是两个数组都先存入Set中,然后用:第一个.removeAll(第二个)。
      

  2.   

    ArrayList<String> diffSet(String[] arr1, String[] arr2){
    ArrayList<String> ret = new ArrayList<String>();
    for(int i = 0; i < arr1.length; ++i){
    if(!contain(arr2,arr1[i]))
    ret.add(arr1[i]);
    }
    return ret;
    }

    boolean contain(String[] arr, String value){
    boolean ret = false;
    for(int i = 0; i < arr.length; ++i){
    if(arr[i].equals(value)){
    ret = true;
    break;
    }
    }
    return ret;
    }
      

  3.   

    两个数组依次循环。
    也可以转成set,用set来操作。
    String[] a={"999000682", "999000680", "999000682", "999000682"}; String[] b={"999000760", "999000682", "999000720", "999000721"};

    Set<String> seta = new HashSet<String>(Arrays.asList(a));
    Set<String> setb = new HashSet<String>(Arrays.asList(b));   
    seta.removeAll(setb);
    System.out.println(seta);