用set 不就ok 了吗?
干嘛要自己去写方法呢!

解决方案 »

  1.   


    public static void main(String[] args) {

    int[] arr = new int[] { 1, 1, 2, 3, 3, 4, 5, 6, 7, 8 };
    Set<Integer> set = new TreeSet<Integer>(); for (int i : arr) {
    set.add(i);
    } int[] des = new int[set.size()];
    int j = 0;
    for (Integer i : set) {
    des[j++] = i;
    }
    System.out.println(Arrays.toString(des));
    }
      

  2.   

    你不用Set要自己写的话,就实现equals和hashcode来判断,具体细节你可以参考Set
      

  3.   

    楼主的方法中存在一个问题,如果数组本身就存在重复的0,处理就会得到错误的结果
    使用set是一种好办法
    如果要自己实现的话,
    常规的做法是新建一个数组,原始数组中的值一次放入新建数组中,放入之前进行比较
    复杂度为O(n*n)
      

  4.   

    受教了~利用TreeSet没有重复元素的特性达到去除重复元素的目的
      

  5.   


    package test;
    import java.util.Scanner;
    public class Exercise6_51 {
    public static void main(String args[]){
        int[] a=new int[10];
        int length=a.length;
        //int i,j,k;
        Scanner input=new Scanner(System.in);
        System.out.print("Enter ten numbers:");
        for(int i=0;i<a.length;i++){
         a[i]=input.nextInt();
        }
        for(int i=0;i<length;i++){
         for(int j=i;j<length-1;j++){
         if(a[i]==a[j+1]){
         for(int k=j+1;k<length-1;k++){
         a[k]=a[k+1];
         }
         length--;
         j--;
         }
         }
        }
        //java.util.Arrays.sort(a);
        System.out.print("The distinct numbers are:");
        for(int i=0;i<length;i++){
         System.out.print(a[i]+" ");
        }
      }  
    }
    这样就可以了,0的问题解决了,谢谢大家了
      

  6.   

    package com.sesan.last;import java.util.Scanner;public class Exercise6_51 {
        public static void main(String args[]){
            int[] a={1,3,4,5,3,2,5,6,4,3,2,2,2,2,2,2,6};
            int length=a.length;
            //int i,j,k;        for(int i=0;i<length;i++){
                for(int j=i;j<length-1;j++){
                    if(a[i]==a[j+1]){
                        for(int k=j+1;k<length-1;k++){
                            a[k]=a[k+1];
                            for(int m=0;m<length;m++){
                                System.out.print(a[m]+" ");
                            }
                            System.out.println(",");
                        }
                        length--;
                     //   j--;
                    }
                }
            }
            //java.util.Arrays.sort(a);
            System.out.print("The distinct numbers are:");
            for(int i=0;i<length;i++){
                    System.out.print(a[i]+" ");
            }
      }         
    }
    结果还有重复的,需要再改进The distinct numbers are:1 3 4 5 2 6 2 2