面试时遇到的很有意思的题

来源:互联网 发布:网络教育 一年硕士 编辑:程序博客网 时间:2024/06/06 20:51

这段时间出去面试,遇到了很多有意思的题。

话不多说,开始上题

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) + " ");        }

这两个比较有意思,望各位道友同享乐~

0 0
原创粉丝点击