2017-02-12 37 views
-2

這裏排除重複的是我的工作的問題說:「寫的是通過以下方法頭消除陣列中的重複的值返回一個新的數組的方法:陣列中的

公共靜態INT [] eliminateDuplicates (INT []的列表)

收件,在10個整數讀的測試程序,調用方法並顯示結果「。

這裏是我的代碼:

public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 
     int[] list = new int[10]; 

     System.out.print("Enter ten numbers:"); 

     for (int i = 0; i < list.length; i++) { 
     list[i] = input.nextInt(); 
     } 

     System.out.print("The distinct numbers are: "); 
     for(int i = 0; i < 10; i++){ 
      if(list[i] != -1){ 
     System.out.print(eliminateDuplicates(list)); 
      } 
     } 
} 
    public static int[] eliminateDuplicates(int[] list) { 
     for(int i = 0; i < 10; i++){ 
      for(int j = i + 1; j < 10; j++){ 
       if (list[i] == list[j]){ 
        list[i]= -1; 
        } 
      } 
     } 
     return list;   

}}

我的問題是我的輸出是真的很奇怪,這是我得到什麼「[I @ 55f96302 [I @ 55f96302 [I @ 55f96302 [I @ 55f96302 [I @ 55f96302 [I @ 55f96302 [I @ 55f96302"

誰能告訴我,我要去哪裏錯了嗎?或者從哪裏開始修復它的建議?我還是一個初學者,所以我還沒有學會了一大堆(如hashsets或任何東西)。

你有我非常感謝

+0

你必須遍歷並打印出數組中的每個元素。 'System.out.println(array)'不會做你認爲它做的事。 – Kevin

+0

@Kevin - 無需遍歷所有元素。有方便的'java.util.Arrays.toString(...)'方法。 :) –

+0

@TedHopp不夠公平,但仍然沒有一個循環,它只是'Arrays.toString'寫的循環爲您服務。但是,是的,這是一個更好的解決方案。 – Kevin

回答

0
System.out.println(Arrays.toString(eliminateDuplicates(list))); 
+1

請[編輯]你的答案包含如何回答這個問題的解釋,而不是隻是刪除了一些代碼在這裏。 –