2017-09-11 36 views
0

我需要一些幫助。我目前正在編寫關於多態的程序,這是我作業的規定。我願意就如何做到這一點提供建議。類型從int到ArrayList不匹配

規定性作業的: 編寫從使用下面的頭整數的數組列表中刪除重複的元素的方法:

公共靜態無效removeDuplicate(ArrayList的列表)

寫測試程序提示用戶輸入10個整數到一個列表並顯示由一個空格分隔的不同整數。下面是一個樣品運行:

輸入10點的整數:10 20 30 20 20 30 50 60 100 9

的不同的整數爲:[10,20,30,50,60,100,9]

這是到目前爲止我的代碼:

import java.util.ArrayList; 
    import java.util.Scanner; 

public class ArrayInput extends ArrayList{ 
public static int a[]; 

public static int[] inputArrays(int a[]) { 
    for(int i = 0; i < 10; i++) { 
     Scanner input = new Scanner(System.in); 
     a[i] = input.nextInt(); 
     } 
    return a; 
} 

public static void removeDuplicate(ArrayList list) { 
    for(int i = 0; i < 10; i++) { 
     if(a[i] != a[i--]) { 
      list = a[i]; 
     } 
    } 

} 

} 
+0

每次'if'條件成功時,您都將arraylist重新分配給int元素。相反,將該元素「添加」到數組列表。 – Ray

+0

https://stackoverflow.com/questions/8452672/java-howto-arraylist-push-pop-shift-and-unshift – Ray

+1

最好的辦法是在您閱讀時檢查重複項。要檢查未排序列表中的重複內容,您必須查看整個列表,您擁有的代碼只會刪除相鄰的重複項。另一個錯誤是,你將我初始化爲0,然後檢查i--,所以你要走出界限,同時改變我,讓它循環永不終止 – Mitchel0022

回答

0

您不能轉換或int的ArrayList投陣,但如果你想添加的元素列表,你可以做這樣的事情:

public static void removeDuplicate(ArrayList list) { 
    for(int i = 0; i < 10; i++) { 
     if(a[i] != a[i--]) { 
      //change code here 
      list.add(a[i]); 
     } 
    } 
} 
0
list = a[i]; 

我覺得這是你的問題,你想一個INT值賦給的ArrayList

相關問題