List 此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
List常用的实现类:
ArrayList:底层的数据结构使用的是数组结构,线程不同步
特点:查询速度快,但增删速度慢
LinkedList:底层的数据结构使用的是链表结构
特点:查询慢,增删速度快
Vector:底层是数组数据结构。线程同步。增删查询都慢,基本被ArrayList取代;Vector特有的一个方法 elements(); 返回枚举,是Vector特有取出方式(与迭代器相似)
其实枚举和迭代器是一样的,因为枚举的名称以及方法名称都过长所以被迭代器取代了
List 接口提供了特殊的迭代器,称为 ListIterator,除了允许 Iterator 接口提供的正常操作外,该迭代器还允许元素插入和替换,以及双向访问。还提供了一个方法来获取从列表中指定位置开始的列表迭代器。
ListIterator li = list.listIterator();
对于ArrayList与LinkedList的使用要视情况而定,正常情况使用ArrayList比较多