今天在學習鏈表的時候,有一個小例題:刪除表中的偶數,使用的是ArrayList。我所學習的《數據結構與算法分析》這本書中只給出了使用remove刪除偶數的算法,其他的創建一個數組對象,從鍵盤接收數組元素等等,是我自己添加的。小程序如下:
public class Remove {
//刪除表中的偶數
public static void removeEvensVer1(List<Integer> lr1){
int i = 0;
while(i < lr1.size()){
if(lr1.get(i) % 2 == 0){
lr1.remove(i);
}
else
i++;
}
System.out.println("When the array are removed, array are:");
for(int j = 0;j < lr1.size();j++){
System.out.print(lr1.get(j)+" ");
}
System.out.println();
}
@SuppressWarnings("null")
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
List<Integer> integer = new ArrayList<Integer>();
System.out.println("Please get the length:");
//while(scanner.hasNext()){
int length = scanner.nextInt();
System.out.println("Please input an array:");
for(int i = 0;i<length;i++){
integer.add(scanner.nextInt());
}
//}
System.out.println("The array are:");
for(int i = 0;i<integer.size();i++){
System.out.print(integer.get(i)+" ");
}
System.out.println();
removeEvensVer1(integer);
}
}
運行結果爲:
注意:這個程序中容易出現的錯誤在於:使用List創建數組對象的時候。由於List包括兩種實現方法:一種是LinkedList,另外一種是ArrayList。所以,一定要明確的指出你要new的是什麼類型的數組。我在這裏犯了錯誤,研究了很久。引以爲戒!