刪除ArrayList表中的偶數

        今天在學習鏈表的時候,有一個小例題:刪除表中的偶數,使用的是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的是什麼類型的數組。我在這裏犯了錯誤,研究了很久。引以爲戒!

發佈了39 篇原創文章 · 獲贊 15 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章