在Java中消除数组中的重复项

在Java中消除数组中的重复项,java,arrays,Java,Arrays,编写一个方法,通过使用以下标头消除数组中的重复值来返回新数组: public static int[] eliminateDuplicates (int[] list) 到目前为止,我只有main,但我想对另一个方法做的是使用for循环检查数组中每个空格的值,如果它们不等于任何其他条目,则打印它们。就在我们说话的时候! 我的输出是:不同的数字是:[I@4554617c 首先,这是11个字符,最多我应该打印10个字符 import java.util.Scanner; public class

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

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;
     }   

   }

不同的数字是:[I@4554617c它们非常不同,不是偶数!System.out.println不同的数字是:+EliminatedReplicateTestenNumbers;打印对int数组的引用。您要打印数组的内容。如果要通过println输出数组,则应使用System.out.printlnArrays.toStringyourArray并导入java.util.Arrays。显然它们不是,这就是我在这里发布的原因…您可能只需要array2[newCount++]=list[i];注意++请花一些时间解释您的代码示例以及它如何解决问题。
import java.util.*;

public class Question {

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    int[] arr = {1,2,3,3,4,5,6,1};
    int[] ne = new int[arr.length];
    ArrayList<Integer> already= new ArrayList();
    int i = 0;
    while(i<arr.length){
        if(!already.contains(arr[i]))
            already.add(arr[i]);
        i++;

    }
    System.out.println(already.toString());
    }

}
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);
}
}