1. 为什么要ArrayList扩容要不是固定值?
扩容固定容量,很难决定到底取多少值合适,取任何具体值都不太合适,因为所需数据量往往由数组的客户端在具体应用场景决定。
所以依赖于当前已经使用的量*系数,才比较符合实际应用场景。
2. Vector为什么是线程安全的集合?
Vector 的所有方法加上了 synchronized 关键字。
3. Array 和 ArrayList 有何区别?
Array 可以存储基本数据类型和对象,ArrayList 只能存储对象。
Array 是指定固定大小的,而 ArrayList 大小是自动扩展的。
Array 内置方法没有 ArrayList 多,比如 addAll、removeAll、iteration 等方法只有 ArrayList 有。
4. Queue(队列)是什么?
队列,是一种数据结构,尾部添加、头部删除(先进队列的元素先出队列),类似生活中的排队。
5. 在 Queue中poll()和remove()有什么区别?
相同点:都是返回第一个元素,并在队列中删除返回的对象。
不同点:如果没有元素poll()会返回 ull,而remove()会直接抛出 NoSuchElementException 异常。
标签:面试题,12,Java,队列,ArrayList,remove,Queue,Vector,Array From: https://blog.51cto.com/kongxiaolong/8400041