LinkList
鏈表(Linked list)是一種常見的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),是一種線性表,但是并不會按線性的順序存儲數(shù)據(jù),而是在每一個(gè)節(jié)點(diǎn)里存到下一個(gè)節(jié)點(diǎn)的地址。
鏈表可分為單向鏈表和雙向鏈表。
一個(gè)單向鏈表包含兩個(gè)值: 當(dāng)前節(jié)點(diǎn)的值和一個(gè)指向下一個(gè)節(jié)點(diǎn)的鏈接。
一個(gè)雙向鏈表有三個(gè)整數(shù)值: 數(shù)值、向后的節(jié)點(diǎn)鏈接、向前的節(jié)點(diǎn)鏈接。
Java LinkedList(鏈表) 類似于 ArrayList,是一種常用的數(shù)據(jù)容器。
與 ArrayList 相比,LinkedList 的增加和刪除的操作效率更高,而查找和修改的操作效率較低。
以下情況使用 ArrayList :
- 頻繁訪問列表中的某一個(gè)元素。
- 只需要在列表末尾進(jìn)行添加和刪除元素操作。
以下情況使用 LinkedList :
你需要通過循環(huán)迭代來訪問列表中的某些元素。
需要頻繁的在列表開頭、中間、末尾等位置進(jìn)行添加和刪除元素操作。
-
LinkedList 繼承了 AbstractSequentialList 類。
-
LinkedList 實(shí)現(xiàn)了 Queue 接口,可作為隊(duì)列使用。
-
LinkedList 實(shí)現(xiàn)了 List 接口,可進(jìn)行列表的相關(guān)操作。
-
LinkedList 實(shí)現(xiàn)了 Deque 接口,可作為隊(duì)列使用。
-
LinkedList 實(shí)現(xiàn)了 Cloneable 接口,可實(shí)現(xiàn)克隆。
-
LinkedList 實(shí)現(xiàn)了 java.io.Serializable 接口,即可支持序列化,能通過序列化去傳輸。
import java.util.LinkedList;
public class Linkedlist {
public static void main(String[] args) {
LinkedList<String> sites = new LinkedList<String>();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
System.out.println(sites);
sites.addFirst("Wiki"); //addFirst
System.out.println(sites);
sites.addLast("Wiki2"); //addLast
System.out.println(sites);
sites.removeFirst(); //removeFirst
System.out.println(sites);
sites.removeLast(); //remoceLast
System.out.println(sites);
System.out.println(sites.getFirst());
System.out.println(sites.getLast());
for (int i =0;i<sites.size();i++) //for循環(huán)
System.out.println(sites.get(i));
for (String i :sites) //for-each循環(huán)
System.out.println(i);
}
}
public boolean add(E e) 鏈表末尾添加元素,返回是否成功,成功為 true,失敗為 false。
public void add(int index, E element) 向指定位置插入元素。
public boolean addAll(Collection c) 將一個(gè)集合的所有元素添加到鏈表后面,返回是否成功,成功為 true,失敗為 false。
public boolean addAll(int index, Collection c) 將一個(gè)集合的所有元素添加到鏈表的指定位置后面,返回是否成功,成功為 true,失敗為 false。
public void addFirst(E e) 元素添加到頭部。
public void addLast(E e) 元素添加到尾部。
public boolean offer(E e) 向鏈表末尾添加元素,返回是否成功,成功為 true,失敗為 false。
public boolean offerFirst(E e) 頭部插入元素,返回是否成功,成功為 true,失敗為 false。
public boolean offerLast(E e) 尾部插入元素,返回是否成功,成功為 true,失敗為 false。
public void clear() 清空鏈表。
public E removeFirst() 刪除并返回第一個(gè)元素。
public E removeLast() 刪除并返回最后一個(gè)元素。
public boolean remove(Object o) 刪除某一元素,返回是否成功,成功為 true,失敗為 false。
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 descendingIterator() 返回倒序迭代器。
public int size() 返回鏈表元素個(gè)數(shù)。
public ListIterator listIterator(int index) 返回從指定位置開始到末尾的迭代器。
public Object[] toArray() 返回一個(gè)由鏈表元素組成的數(shù)組。文章來源:http://www.zghlxwxcb.cn/news/detail-679909.html
public T[] toArray(T[] a) 返回一個(gè)由鏈表元素轉(zhuǎn)換類型而成的數(shù)組。文章來源地址http://www.zghlxwxcb.cn/news/detail-679909.html
到了這里,關(guān)于Java 中數(shù)據(jù)結(jié)構(gòu)LinkedList的用法的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!