Java面试题---List
# List 的有哪些?
ArrayList、LinkedList、Vector
# List 和 Vector 的区别?
Vector 是 List 接口线程安全的集合
# List 是有序的吗?
List 的是有序的。
List 实现类有 ArrayList、LinkedListVector
Set 是无序的,且不能重复
# ArrayList 和 LinkedList 的区别?分别应用在什么场景?
数据结构不一样。前者用在查询较多的场合,后者适用于插入比较多的场景
# ArrayList 和 LinkedList 的底层数据结构是什么?
ArrayList 使用的是数组结构,LinkedList 是使用的链表结构。
# ArrayList 的默认大小是?如何扩容?
JDK1.7 之前是 10,1.7 后是 0
扩容是按照 1.5 倍扩容。
# List 是线程安全的吗?如果线程安全需要怎么做?
List 中 的 Vector 才 是 线 程 安 全 的 , 其 他 要 实 现 线 程 安 全 使 用 工 具 类
Collections.synchronizedList (new ArrayList ()) 方法。
# 如何给 List 排序。
使用 List 自身的 sort 方法,或者使用 Collections.sort (list) 方法
# Arrays.asList 方法后的 List 可以扩容吗?
Arrays.asList 使用的是 final 数组,不支持 add 方法,不支持扩容
# List 和 Array 之间如何转换
List 转化为 Array 使用 toArray 方法
Array 转化为 List 使用 Arrays.asList (array)