面試時遇到的很有意思的題

這段時間出去面試,遇到了很多有意思的題。

話不多說,開始上題

1:

<span style="white-space:pre">	</span>int i = 10;
        while(true){
            if(--i > 0)
                System.out.print(i);
        }
程序是結果是什麼?

是987654321嗎?

運行出來0987654321後運行一段時間會出現2^32-1之後繼續減


2:

   ArrayList<Integer> list = new ArrayList<Integer>();
        list.add(1);
        list.add(0);
        list.add(0);
        list.add(1);
        for(int i = 0; i < list.size(); i++){
            if(list.get(i) == 0) list.remove(i);
        }
        for(int i = 0; i < list.size(); i++){
            System.out.print(list.get(i) + " ");
        }
結果會把0都刪掉嗎?

不會的,看ArrayList中的remove函數就知道了,remove(i),會把i之後的數字全移到前一位,所以會存在0“丟失的情況”

以下這個能把0全刪除

  ArrayList<Integer> list = new ArrayList<Integer>();
        list.add(1);
        list.add(0);
        list.add(0);
        list.add(1);
        for(int i = 0; i < list.size(); i++){
            if(list.get(i) == 0){
                list.remove(i);
                i--;
            }
        }
        for(int i = 0; i < list.size(); i++){
            System.out.print(list.get(i) + " ");
        }

這兩個比較有意思,望各位道友同享樂~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章