Java的LinkedList是一種常用的數(shù)據(jù)容器腿准,與ArrayList相比唯蝶,LinkedList的增刪操作效率更高,而查改操作效率較低残吩。
LinkedList 實(shí)現(xiàn)了List 接口缰趋,能對(duì)它進(jìn)行列表操作捧杉。
LinkedList 實(shí)現(xiàn)了Deque 接口,即能將LinkedList當(dāng)作雙端隊(duì)列使用秘血。
LinkedList 實(shí)現(xiàn)了Cloneable接口味抖,能克隆。
LinkedList 實(shí)現(xiàn)了java.io.Serializable接口灰粮,這意味著LinkedList支持序列化仔涩,能通過序列化去傳輸。
構(gòu)造方法
LinkedList() 用于創(chuàng)建一個(gè)新的空linkedList粘舟;
LinkedList(Collection<? extends E> c) 使用一個(gè)集合創(chuàng)建一個(gè)新的linkedList熔脂。
public class Main {
public static void main(String[] args) {
LinkedList<String> linkedList1 = new LinkedList<>();
System.out.println(linkedList1);
String[] arr = {"H", "E", "L", "L", "O"};
LinkedList<String> linkedList2 = new LinkedList<>(Arrays.asList(arr));
System.out.println(linkedList2);
}
}
輸出
[]
[H, E, L, L, O]
常用方法
增
public boolean add(E e),鏈表末尾添加元素柑肴,返回是否成功霞揉;
public void add(int index, E element),向指定位置插入元素晰骑;
public boolean addAll(Collection<? extends E> c)适秩,將一個(gè)集合的所有元素添加到鏈表后面,返回是否成功硕舆;
public boolean addAll(int index, Collection<? extends E> c)秽荞,將一個(gè)集合的所有元素添加到鏈表的指定位置后面,返回是否成功抚官;
public void addFirst(E e)扬跋,添加到第一個(gè)元素;
public void addLast(E e)凌节,添加到最后一個(gè)元素钦听;
public boolean offer(E e),向鏈表末尾添加元素倍奢,返回是否成功彪见;
public boolean offerFirst(E e),頭部插入元素娱挨,返回是否成功余指;
public boolean offerLast(E e),尾部插入元素,返回是否成功酵镜;
刪
public void clear()碉碉,清空鏈表;
public E removeFirst()淮韭,刪除并返回第一個(gè)元素垢粮;
public E removeLast(),刪除并返回最后一個(gè)元素靠粪;
public boolean remove(Object o)蜡吧,刪除某一元素,返回是否成功占键;
public E remove(int index)昔善,刪除指定位置的元素;
public E poll()畔乙,刪除并返回第一個(gè)元素君仆;
public E remove(),刪除并返回第一個(gè)元素牲距;
查
public boolean contains(Object o)返咱,判斷是否含有某一元素;
public E get(int index)牍鞠,返回指定位置的元素咖摹;
public E getFirst(), 返回第一個(gè)元素;
public E getLast()难述,返回最后一個(gè)元素萤晴;
public int indexOf(Object o),查找指定元素從前往后第一次出現(xiàn)的索引龄广;
public int lastIndexOf(Object o)硫眯,查找指定元素最后一次出現(xiàn)的索引蕴侧;
public E peek()择同,返回第一個(gè)元素;
public E element()净宵,返回第一個(gè)元素敲才;
public E peekFirst(),返回頭部元素择葡;
public E peekLast()紧武,返回尾部元素;
改
public E set(int index, E element)敏储,設(shè)置指定位置的元素阻星;
其他
public Object clone(),克隆該列表;
public Iterator<E> descendingIterator()妥箕,返回倒序迭代器滥酥;
public int size(),返回鏈表元素個(gè)數(shù)畦幢;
public ListIterator<E> listIterator(int index)坎吻,返回從指定位置開始到末尾的迭代器;
public Object[] toArray()宇葱,返回一個(gè)由鏈表元素組成的數(shù)組瘦真;
public <T> T[] toArray(T[] a),返回一個(gè)由鏈表元素轉(zhuǎn)換類型而成的數(shù)組黍瞧;
遍歷
- 快速隨機(jī)訪問
for (int size = linkedList.size(), i = 0; i < size; i++) {
System.out.println(linkedList.get(i));
}
- 自動(dòng)增強(qiáng)的for循環(huán)
for (String str: linkedList) {
System.out.println(str);
}
- 迭代器
Iterator iter = linkedList.iterator();
while (iter.hasNext()) {
System.out.println(iter.next());
}