# 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)