消除Java中数组的重复

时间:2014-10-22 21:46:38

标签: java arrays

编写一个方法,通过使用此标头消除数组中的重复值来返回新数组:

public static int[] eliminateDuplicates (int[] list)
到目前为止,我所有的都是main,但我想为另一种方法做的是使用for循环检查数组中每个空格的值,如果它们不等于任何一个,则打印它们其他条目。我们说话的时候正在努力!  我的输出是这样的:不同的数字是:[I @ 4554617c

首先这是11个字符,最多我应该打印10个。

import java.util.Scanner;

public class EliminateDuplicates
   {
      public static void main(String [] Args)
     {
        Scanner input = new Scanner(System.in);

        System.out.println("Please enter ten whole numbers: ");
        int[] tenNumbers = new int[10];
        for (int i=0; i<10; i++)
        {
           tenNumbers[i] = input.nextInt();
        }             
        System.out.println("The distinct numbers are: " + eliminateDuplicates(tenNumbers));

     }

  public static int[] eliminateDuplicates (int[] list)
     {
        int count = 0; 
        for (int i = 0; i > list.length; i++)
           {
            for (int j = i + 1; j < list.length; j++)
              {

                 if(list[i] == list[j])
                    {
                       list[j] = -1;
                    }                       
              }      
           }


        for (int i = 0; i < list.length; i++)
           {
              if(list[i] != -1)
                 {
                    count++;
                 }

           }
        int[] array2 = new int[count]; 
        int newCount = 0;
        for (int i = 0; i < list.length; i++)
           {
              if(list[i] != -1)
                 {
                    array2[newCount] = list[i];
                 }                  
           }      

        return array2;
     }   

   }

2 个答案:

答案 0 :(得分:0)

import java.util.ArrayList; 
public class EliminateDuplicates {
//This is called Generics, It'll be a little later in your studies

    public static <E> ArrayList<E> eliminateDuplicates(ArrayList<E> list) {
        ArrayList<E> newList = new ArrayList<>(list.size());
        for (E aList : list) { // for (int i = 0; i <= list.lenght; i++){
            if (!newList.contains(aList)) { 
                newList.add(aList);
            }
        }
        return newList;
    }

public static void main(String[] args) {
    ArrayList<Integer> tenNumbers = new ArrayList<Integer>();
    tenNumbers.add(14);
    tenNumbers.add(24);
    tenNumbers.add(14);
    tenNumbers.add(42);
    tenNumbers.add(25);
    tenNumbers.add(24);
    tenNumbers.add(14);
    tenNumbers.add(42);
    tenNumbers.add(25);
    tenNumbers.add(24);

    ArrayList<Integer> newList = eliminateDuplicates(tenNumbers);

    System.out.print("The distinct numbers are: " + newList);
}
}

答案 1 :(得分:-1)

{{1}}