Java简单笔试题(一)

来源:互联网 发布:香港虚拟主机 知乎 编辑:程序博客网 时间:2024/05/22 13:04

2016年10月我们学校校招的某一招聘公司的笔试题:

public class Main {    public static void main(String[] args) {        List<String> list = new LinkedList<>();        list.add("AAAA");        list.add("BBBB");        list.add("CCCC");        for (int i = 0; i < list.size(); i++) {            list.remove(i);        }        for (String item : list) {            System.out.println(item);        }    }}上面的代码运行的结果是什么?(答案在下边)



LinkedList 和 ArrayList 有什么区别?

1、ArrayList是基于索引的数据接口,它的底层是数组。它可以以O(1)时间复杂度对元素进行随机访问。与此对应,LinkedList是以元素列表的形式存储它的数据,每一个元素都和它的前一个和后一个元素链接在一起,在这种情况下,查找某个元素的时间复杂度是O(n)。

2、相对于ArrayList,LinkedList的插入,添加,删除操作速度更快,因为当元素被添加到集合任意位置的时候,不需要像数组那样重新计算大小或者是更新索引。而且还需要注意的是在往最后一个位置以及中后位置插入、删除元素时,ArrayList的效率在某些方面比LinkedList的效率要高。

3、LinkedList比ArrayList更占内存,因为LinkedList为每一个节点存储了两个引用,一个指向前一个元素,一个指向下一个元素。









上述输出BBBB , 因为在remove的过程中,size()也在不断的变化。所以最后输出BBBB。

0 0
原创粉丝点击