特点: 有序,索引,可重复
实现类: ArrayList, LinkedList
List 接口中特有的抽象方法
- 初始化:List
list = new ArrayList (); - 访问元素:E get(int index)
- 增:
- 插入:void add(int index, E element)
- void addAll(int index, Collection<? extends E> c)
- 删:boolean remove(int index)
注意:参数必须是int类型,如果是Integer类型就会调用Collect.remove(o)方法 - 修改:E set(int index, E element)
- 按值查找数据元素:list.indexOf(“a”), list.lastIndexOf(“a”)
- 截取:List
subList(int fromIndex, int toIndex) - 转换成字符串:String toString()
- 遍历:for(String str: list){}
排序:void sort(Comparator<? super E> c)
ArrayList特有方法
浅拷贝:
- ArrayList
newArray = new ArrayList (origList); - Object clone()
- ArrayList
void removeRange(int fromIndex, int toIndex)
LinkedList特有方法
LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用.
除了 List 接口之外,LinkedList 还实现了 Deque,Cloneable,Serializable 三个接口。这说明该数据结构支持队列,克隆和序列化操作的。LinkedList的remove()时间复杂度是O(N)。删除前找到所需元素需要使用O(N).
链表操作:
void addFirst(E e)
- void addLast(E e)
- E getFirst()
- E getLast()
- E removeFirst()
-
栈操作:
E pop()
- E peak()
-
队列操作:
boolean offer(E e)
- boolean offerLast(E e)
- E poll()
- E pollLast()
- E peek()
- E peekLast()
