日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java中的LinkedList

發布時間:2023/12/3 java 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中的LinkedList 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

介紹:

LinkedList是由節點組成的線性數據結構。 在單鏈列表中,每個節點包含數據和引用。 在此,參考部分引用鏈表中的下一個節點。

另一方面,在雙鏈表中,我們具有指向上一個和下一個節點的數據和引用。 Java提供了LinkedList實現– java.util.LinkedList <T>,該實現與雙向鏈表一起使用。 此類從AbstractList類繼承,并實現List <T>和Deque <T>接口。 在本快速教程中,我們將學習如何使用Java中的LinkedList類。

構造一個

我們可以通過以下方式之一實例化Java中的鏈表:

Java

LinkedList<Integer> intList = new LinkedList<>();LinkedList<Integer> intList1 = new LinkedList<>(intList);

即此類提供了兩個構造函數:

  • LinkedList():創建一個空的鏈表
  • LinkedList(Collection c):創建一個鏈表,并以c的內容為其元素對其進行初始化

添加元素:

要將元素添加到LinkedList ,我們可以使用List <T>接口中add()方法的風格。 我們還可以使用addFirst()或addLast()將元素分別添加到開頭或結尾。

Java

intList.add(1); // [1] intList.addFirst(2); // [2, 1] intList.addLast(3); // [2, 1, 3]

刪除元素:

同樣,要刪除項目,我們可以從List接口使用remove(index),remove(obj)方法。 否則,我們也可以選擇removeFirst()或removeLast()方法:

Java

int firstElement = intList.removeFirst(); int lastElement = intList.removeLast();

這些方法既刪除又返回刪除的值。

Java LinkedList類還提供removeFirstOccurrence(Object obj)和removeLastOccurrence(Object obj)方法,以分別刪除給定值的第一次出現和最后一次出現。 如果列表中不存在此類值,則這些方法將返回false 。

boolean removed = intList.removeFirstOccurrence(1);

查詢元素:

LinkedList類中有getFirst()和getLast()方法,用于查詢鏈接列表的第一個或最后一個元素:

Java

int firstElement = intList.getFirst(); int lastElement = intList.getLast();

由于這是一個雙向鏈接的列表實現,因此getFirst()和getLast()都是恒定時間操作。

如果我們知道要檢索的元素的索引,則還可以使用List接口的get(int index)方法:

Java

int elementAtIndex1 = intList.get(1);

遍歷

就像其他任何形式的列表一樣,我們將遍歷鏈接列表:

Java

//Using a for loop for(int num : intList) {System.out.println(num); }//Using iterator ListIterator itr = intList.listIterator(); while(itr.hasNext()) {System.out.println(itr.next()); }//Using forEach construct intList.forEach( value -> System.out.println(value); );

讓我們概述一下Java LinkedList和ArrayList類之間的區別:

鏈表 數組列表
使用雙向鏈接列表表示 使用動態數組的概念
實現兩個列表

和德克

介面

只實施清單

接口

不適合隨機訪問 非常適合隨機訪問。 如果我們知道索引,則只需要O(1)時間即可檢索
在Java鏈表的開頭和結尾處進行O(1)插入/刪除 將元素插入ArrayList可能會導致調整后備數組的大小,因此攤銷成本為O(n)。
同樣,在ArrayList的開頭插入將需要我們將所有元素向右移動一個位置。
存儲對上一個和下一個節點的引用的內存開銷 無需存儲其他信息

隨意在本文中了解有關ArrayList的更多信息。 Java LinkedList中還提供了從List <T>接口繼承的ArrayList類中的所有方法。

結論:

在本快速教程中,我們探討了Java LinkedList類的一些最受歡迎的方法。 我們還介紹了Java ArrayList和LinkedList之間的區別。

成為第一個發表評論的人。

翻譯自: https://www.javacodegeeks.com/2019/03/linkedlist-java.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Java中的LinkedList的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。