List
List接口是一个有序的Collection,使用此接口能够精确的控制每个元素插入的位置,能够通过索引(元素在List中位置,类似于数组的下标)来访问List中的元素,第一个元素的索引为0,而且允许有相同的元素。
List接口存储一组不唯—,有序(插入顺序)的对象。
LinkedeList和ArrayList的区别
1、数据结构不同
ArrayList是Array(动态数组)的数据结构,LinkedList是Link(链表)的数据结构。
2、效率不同
当随机访问List(get和set操作)时,ArrayList比LinkedList的效率更高,因为LinkedList是线性的数据存储方式,所以需要移动指针从前往后依次查找。
当对数据进行增加和删除的操作(add和remove操作)时,LinkedList比ArrayList的效率更高,因为ArrayList是数组,所以在其中进行增删操作时,会对操作点之后所有数据的下标索引造成影响,需要进行数据的移动
List集合常用方法:
int size() 获取集合长度
boolean isEmpty() 判断集合是否为空
boolean contains(Object o) 判断集合是否存在某个对象
Iterator<E> Iterator() 实例化Iterator接口,遍历集合
Object[] toArray() 将集合转换为一个Object数组
T[] toArray(T[] a) 将集合转换为一个指定数据类型的数组
boolean add(E e) 向集合中添加元素
boolean remove(Object o) 从集合中删除元素
boolean containAll(Collection c)判断集合中是否存在另一个集合所有元素
boolean addAll(Collection c) 向集合中添加某个集合所有元素
boolean removeAll(Collection c)删除某个集合所有元素
void clear() 清空集合
boolean equals(Collection c) 判断两个集合是否相等
int hashCode() 返回集合的哈希值
T get(index) 通过下标返回对应元素
T set(int index, T element) 在集合指定位置存入对象
int indexOf(Object o) 从前往后查找某个对象位置
int lastIndexOf(Object o) 从后往前查找某个对象位置
ListIterator<E> listIterator() 实例化ListIterator接口,遍历list集合。
List<E> sublist(int fromIdex,int toIndex) 获取集合子集