去除数组中重复的元素

第一种做法,遍历数组,用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;  
    }  
} 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容