①实现顺序表:顺序表类ArrayList------------>ArrayList<String> list = new ArrayList<String>();
②实现链表:链表类LinkedList------------------>LinkedList<String> list=new LinkedList<String>();
------------------------------------------------------------------------------------------------------------------------------------------------
不同点:对于ArrayList,它在集合的末尾删除或添加元素所用的时间是一致的,但是在列表中间的部分添加或删除时所用时间就会大大增加。但是它在根据索引查找元素的时候速度很快。
对于LinkedList则相反,它在插入、删除集合中任何位置的元素所花费的时间都是一样的,但是它根据索引查询一个元素的时候却比较慢。
相同点:通过实例化ArraryList和LinkedList来调用List接口;
---------------------------------------------------------------------------------------------------------------------------------------------------
LinkedList 继承 List 接口(特有方法):
- addFirst(); 在头部添加元素 addLast();在尾部添加元素
- getFirst(); getLast(); 获取元素但不删除
- removeFirst(); removeLast(); 获取并且删除
- jkd1.6中出现了替代方法
- offerFirst(); offerLast();
- peekFirst(); peekLast(); 获取元素,但是元素不被删除。如果集合中没有元素,会返回null
- pollFirst(); pollLast(); 获取元素,但是元素被删除。如果集合中没有元素,会返回null
ArrayList 继承 List 接口(特有方法):
- Count属性 记录当前列表的元素个数
- Capacity属性 记录能包含的最大数量,可改
- Add方法用于添加一个元素到当前列表的末尾
- AddRange方法用于添加一批元素到当前列表的末尾
- Remove方法用于删除一个元素,通过元素本身的引用来删除
- RemoveAt方法用于删除一个元素,通过索引值来删除
- RemoveRange用于删除一批元素,通过指定开始的索引和删除的数量来删除
- Insert用于添加一个元素到指定位置,列表后面的元素依次往后移动
- InsertRange用于从指定位置开始添加一批元素,列表后面的元素依次往后移动