int[] a = {1,2,3,4,5};
int[] b = {2,3,5};
int[] result = {1,4};
两个不同数组,怎么提取出不同部分?
就是得到 result.

解决方案 »

  1.   

    用map来获取吧。。    int[] a = {1,2,3,4,5};
        int[] b = {2,3,5};
        Map<String,Boolean> map = new HashMap<String,Boolean>();
        for(int i=0;i<a.length;i++){
            if(map.get(a[i]+"") == null){
                map.put(a[i]+"",false);    
            }else{
                map.put(a[i]+"",true);
            }    
        }
        
       for(int i=0;i<b.length;i++){
            if(map.get(b[i]+"") == null){
                map.put(b[i]+"",false);    
            }else{
                map.put(b[i]+"",true);
            }    
        }    
        
        for(String str : map.getKeyset()){
            if(map[str] == false){
                System.out.println("无重复:"+key);
             }
        }
      

  2.   

    可以用Map或者List吗?
    可以的话,把a做成Map,然后循环b,从a里面remove掉b的元素
      

  3.   


    public class Test001 { public static void main(String[] args){
    int[] a = {1,2,3,4,5};
    int[] b = {2,3,5}; boolean flag = false; int index = 0;
    int temp = 0;
    int[] result = new int[a.length - b.length]; for(int i =0; i < a.length ; i ++){ for(int j=0; j < b.length; j ++){
    if(a[i] == b[j]){
    flag = true;
    temp = 0;
    break;
    }else{
    flag =  false;
    temp = a[i];
    }
    } if(!flag){
    result[index ++] = temp;
    }
    }
    for(int x = 0; x < result.length; x ++){
    System.out.println(result[x]);
    }
    }
    }
      

  4.   

    也可以用List集合做,如下:                    int[] a = {1,2,3,4,5};
        int[] b = {2,3,5};
        //新数组
        Object [] c =new Object[2];
        // 定义两个集合
        List list = new ArrayList();
        List list1 = new ArrayList();
        
        //将 a 数组的值赋给list
        for(int i=0;i<a.length;i++)
        {
         list.add(a[i]);
        }
        //将 b 数组的值赋给 list1
        for(int i=0;i<b.length;i++)
        {
         list1.add(b[i]);
        }
        //循环遍历,将 list 中 与 list1 相同的项删除 ,剩下的就是不同的
                        for(int i=0;i<list.size();i++)
                          {
                            for(int j=0;j<list1.size();j++)
                           {
                         if( list.get(i)== list1.get(j))
                       {
                  list.remove(i);           
                       } 
                        }
                }
                //将 list 转为数组
                 c = list.toArray();
                 //遍历新数组中的数
                 for(int i=0;i<c.length;i++)
                 {
                  System.out.println(c[i]);
                 }