java 去除重复项

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

class Demo20
{
    public static void main(String[] args)
    {
        //int [] arr={1,2,3,3,4,4,4,4};
        int [] arr={4,2,3,3,4,4,4,4};
        //arr=delArr(arr);
        arr=delArrByHash(arr);
        //test(arr);
        System.out.println(Arrays.toString(arr));
        System.out.println("这个数组的长度是:"+arr.length);
        System.out.println("这个是测试去除重复项!");
    }
    //数组去除重复项
    public static int [] delArr(int [] arr)
    {    
        if(arr.length<=1)
            return arr;
        int index=-1;
        //先排序
        for(int i=0;i<arr.length-1;i++)
        {
            index=-1;
            for(int j=i+1;j<arr.length;j++)
            {
                if(arr[i]>arr[j])
                {
                    index=j;
                }
            }
            
            if(index!=-1)
            {
                arr[i]=arr[i]^arr[index];
                arr[index]=arr[i]^arr[index];
                arr[i]=arr[i]^arr[index];
            }
        }
        index=0;
        for(int i=0;i<arr.length-1;i++)
        {            
            if(arr[i]==arr[i+1])
                index++;
        
        }        
        int[] arrOne=new int[arr.length-index];
        
        index=0;        
        for(int i=0;i<arr.length-1;i++)
        {
            if(arr[i]!=arr[i+1])
            {
                arrOne[index]=arr[i];
                index++;
            }
        }
        arrOne[index]=arr[arr.length-1];//对最后一个数赋值    
        
        return arrOne;
    }
    
    // hashSet.toArray(new int[0]); 这个查了好久,里面好像是String类型的
    public static int[] delArrByHash(int [] arr)
    {
        
        Set<Integer> hashSet=new HashSet<Integer>();
        for(int i=0;i<arr.length;i++)
        {
            hashSet.add(arr[i]);            
        }
        int[] arrOne=new int[hashSet.size()];
        
        Integer [] arrTow= hashSet.toArray(new Integer[0]);
        
        for(int i=0;i<arrTow.length;i++)
        {
            arrOne[i]=arrTow[i].intValue();
        }
        return arrOne;
    }
    
}

 

我乃新手,如有错误欢迎指点
posted @ 2013-09-09 01:06  考虑到五岁的限制  阅读(877)  评论(0编辑  收藏  举报