去除数组中重复的元素

2016-08-14  本文已影响0人  fuel

第一种做法,遍历数组,用isExist标记是否出现过,未出现则添加至新的数组

public static int[] distinct(int[] arr){
    int length=1;
    bollean isExist=false;
    for(int i=1;i<arr.length;i++){
          for((int j=0;j<length;j++){
                if(arr[i]==arr[j]){
                      isExist=true;
                 }
          }
                if(!isExist){
                      arr[length]=arr[i];
                      length++;
                }
                isExist=false;
    }
    int[] newArr=new int[length];
    System.arraycopy(arr,0,newArr,0,length);
    return newArr;
}

第二种做法,利用set集合框架,因为set集合中元素不允许重复

public static void main(String[] args){                      
         int[] arr={0,4,2,4,6,1,2,4,7,8};                           
         TreeSet ts=new TreeSet();                 
         for(int x=0;x<arr.length;x++){     
              if(arr[x]==0)      
                continue;                    
            ts.add(arr[x]);                  
      }                     
            System.out.println(ts);      
}

第三种做法,利用hashtable,利用其键的唯一性

 public Object[] filter(Object arr[])  
    {  
        Hashtable<Object, Object> hashtable = new Hashtable<Object, Object>();  
        for (int i = 0; i < arr.length; ++i)  
        {  
            hashtable.put(arr[i], arr[i]);  
        }  
        Object results[] = null;  
        results = hashtable.values().toArray();  
        return results;  
    }  
} 
上一篇 下一篇

猜你喜欢

热点阅读