前言
前面给小伙伴们分享了Java的集合框架,接下来给大家分享的是List接口。
List接口
List是有序的Collection,使用此接口能够精准的控制每一个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素。
除了具有Collection接口必备的iterator()方法外,List还提供一个listIterator()方法,返回一个ListIterator接口,和标准的Iterator接口相比ListIterator多了一些add()方法,允许添加,删除,设定元素,还能向前或向后遍历。
###常用的方法
add(int index,Object obj); //指定位置添加指定元素
get(int index); //获取指定位置的元素
ArrayList
ArrayList
实现了可变大小的数组。它允许所有的元素,包括null。每个ArrayList
实例都有一个容量(Capacity),即用于存储元素的数组的大小。这个容量可随着不断添加新的元素而自动增加,但是增长算法并没有定义。当需要插入大量元素时,在插入前可以调用ensureCapacity
方法来增加ArrayList
的容量以提高插入效率。和LinkedList
一样,ArrayList
也是非同步的(unsynchronized
)。
LinkedList
LinkedList实现List接口,允许null元素,LinkedList没有同步。此外LinkedList提供额外的get,remove,insert方法在LinkedList的首部或尾部。这些操作使LinkedList可被用做堆栈(stack),队列(queue)或双向队列(deque)。