Java有序集合完整使用指南

Java中有很多有序集合類型可供選擇,如ArrayList、LinkedList、TreeSet、LinkedHashSet、PriorityQueue等。每個集合都有它自己的特點,可以根據具體業務場景需求選取適合的集合。這篇文章將從多個方面對Java有序集合進行詳細介紹和使用。

一、ArrayList

ArrayList是Java中常用的集合之一,其內部基於數組實現,可以動態增長,同時支持隨機訪問。以下是ArrayList的簡單應用示例:

ArrayList<String> list = new ArrayList<>();

list.add("Hello");
list.add("World");
list.add("Java");

for (int i = 0; i < list.size(); i++) {
    System.out.println(list.get(i));
}

list.remove(1);

for (String str : list) {
    System.out.println(str);
}

上面的代碼創建了一個String類型的ArrayList,並添加了3個元素。使用for循環和get方法遍歷ArrayList並輸出其內容,再使用remove方法刪掉第二個元素,最後使用增強型for循環遍歷ArrayList並輸出其內容。

二、LinkedList

LinkedList是Java中另一個常用的集合,其內部基於鏈表實現,支持動態增長和雙向訪問。以下是LinkedList的簡單應用示例:

LinkedList<Integer> list = new LinkedList<>();

list.add(1);
list.add(3);
list.add(5);

for (int num : list) {
    System.out.println(num);
}

list.removeLast();

for (int num : list) {
    System.out.println(num);
}

上面的代碼創建了一個Integer類型的LinkedList,並添加了3個元素。使用增強型for循環遍歷LinkedList並輸出其內容,再使用removeLast方法刪除最後一個元素,並使用增強型for循環遍歷LinkedList並輸出其內容。

三、TreeSet

TreeSet是Java中一個支持自然排序的有序Set集合,內部使用紅黑樹實現。以下是TreeSet的簡單應用示例:

TreeSet<Integer> set = new TreeSet<>();

set.add(2);
set.add(4);
set.add(1);

for (int num : set) {
    System.out.println(num);
}

set.remove(4);

for (int num : set) {
    System.out.println(num);
}

上面的代碼創建了一個Integer類型的TreeSet,並添加了3個元素。使用增強型for循環遍歷TreeSet並輸出其內容,再使用remove方法刪除元素4,並使用增強型for循環遍歷TreeSet並輸出其內容。

四、LinkedHashSet

LinkedHashSet是Java中的有序Set集合,內部使用哈希表與鏈表實現。與TreeSet不同的是,LinkedHashSet保持元素插入的順序,而不關心元素的大小順序。以下是LinkedHashSet的簡單應用示例:

LinkedHashSet<String> set = new LinkedHashSet<>();

set.add("W");
set.add("H");
set.add("J");

for (String str : set) {
    System.out.println(str);
}

set.remove("H");

for (String str : set) {
    System.out.println(str);
}

上面的代碼創建了一個String類型的LinkedHashSet,並添加了3個元素。使用增強型for循環遍歷LinkedHashSet並輸出其內容,再使用remove方法刪除元素”H”,並使用增強型for循環遍歷LinkedHashSet並輸出其內容。

五、PriorityQueue

PriorityQueue是Java中的一個優先隊列,其內部使用堆來實現。可以保證每次出隊的元素都是優先順序最高的,也可以指定比較器實現自定義排序規則。以下是PriorityQueue的簡單應用示例:

PriorityQueue<Integer> queue = new PriorityQueue<>();

queue.offer(3);
queue.offer(5);
queue.offer(1);

while (!queue.isEmpty()) {
    System.out.println(queue.poll());
}

PriorityQueue<String> strQueue = new PriorityQueue<>(new Comparator<String>() {
    @Override
    public int compare(String o1, String o2) {
        return o2.compareTo(o1);
    }
});

strQueue.offer("Hello");
strQueue.offer("World");
strQueue.offer("Java");

while (!strQueue.isEmpty()) {
    System.out.println(strQueue.poll());
}

上面的代碼創建了一個Integer類型的PriorityQueue,並添加了3個元素。使用while循環和poll方法遍歷PriorityQueue並輸出其內容,輸出的結果是1、3、5。接著,創建了一個String類型的PriorityQueue,並使用自定義的Comparator實現了倒序排序,再使用while循環和poll方法遍歷PriorityQueue並輸出其內容,輸出的結果是World、Java、Hello。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/297526.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-28 12:16
下一篇 2024-12-28 12:16

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • 打造照片漫畫生成器的完整指南

    本文將分享如何使用Python編寫一個簡單的照片漫畫生成器,本文所提到的所有代碼和技術都適用於初學者。 一、環境準備 在開始編寫代碼之前,我們需要準備一些必要的環境。 首先,需要安…

    編程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件並生成完整的圖像

    OBJ格式是一種用於表示3D對象的標準格式,通常由一組頂點、面和紋理映射坐標組成。在本文中,我們將討論如何將多個OBJ文件拼接在一起,生成一個完整的3D模型。 一、讀取OBJ文件 …

    編程 2025-04-29
  • wzftp的介紹與使用指南

    如果你需要進行FTP相關的文件傳輸操作,那麼wzftp是一個非常優秀的選擇。本文將從詳細介紹wzftp的特點和功能入手,幫助你更好地使用wzftp進行文件傳輸。 一、簡介 wzft…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29

發表回復

登錄後才能評論