這段時間出去面試,遇到了很多有意思的題。
話不多說,開始上題
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) + " ");
}
這兩個比較有意思,望各位道友同享樂~