首頁  >  文章  >  Java  >  如何在Java中取得LinkedHashSet的最後一個元素?

如何在Java中取得LinkedHashSet的最後一個元素?

WBOY
WBOY轉載
2023-08-27 20:45:061390瀏覽

如何在Java中取得LinkedHashSet的最後一個元素?

從Java中的LinkedHashSet中檢索最後一個元素意味著檢索其集合中的最後一個元素。儘管Java沒有內建方法來幫助檢索LinkedHashSets中的最後一個項,但存在多種有效的技術,可以提供靈活性和便利性,有效地檢索此最後一個元素而不破壞插入順序- 這是Java開發人員必須在其應用程式中有效處理的問題。透過將這些策略有效地應用於他們的軟體專案中,他們可以實現滿足此要求的最佳解決方案

LinkedHashSet

LinkedHashSet 是 Java 中的高效資料結構,它結合了 HashSet 和 LinkedList 資料結構的功能,在維護元素唯一性的同時仍保留其在插入時的順序。

由於插入、刪除、檢索和修改等常數時間操作的存在,它在快速訪問或更改元素時非常快速- 使用哈希表進行快速查找,而雙向鍊錶則維護順序以實現最大的可訪問性和效率。

這種結構在需要按照新增順序迭代元素時非常理想,可提供最佳的迭代順序。 LinkedHashSet的迭代順序也有助於在保持插入順序完整的同時維護沒有重複元素的情況下使用

import java.util.LinkedHashSet;

// ...

LinkedHashSet<datatype> set = new LinkedHashSet<>();
</datatype>

方法

Java 允許使用多種方法從 LinkedHashSet 中尋找最後一個元素,從而提供對其最後一個成員的存取。這裡有幾種方法。

  • 轉換為ArrayList

  • #
  • 透過LinkedHashSet進行迭代

  • Java 8 流 API

方法一:轉換為ArrayList

Java 中的 ArrayList 是 List 介面的動態分配、可調整大小的基於數組的實現,它提供了一種靈活且高效的方法來儲存和操作集合中的元素。

當元素被加入或移除時,自動擴展或收縮,隨著元素的進入或離開。在內部,它維護一個陣列來儲存其元素,同時支援透過索引添加、移除和存取元素的各種方法。

從 LinkedHashSet 檢索最後一個元素的一種方法是透過其建構函式將其轉換為 ArrayList,該構造函數接受 Collection 作為輸入參數,然後使用其 get() 方法存取並從中提取其最後一個成員。

演算法

  • 建立一個空的 LinkedHashSet。

  • 將元素加入LinkedHashSet中

  • #透過在其建構函式中使用您的資料作為參數來建立一個新的ArrayList,將LinkedHashSet轉換為ArrayList。

  • 檢查一個ArrayList的大小。

  • 如果大小超過零:

    • 使用ArrayList的get()方法,並將index(size-1)作為參數傳遞,以存取其最後一個元素。

    • 現在是對我們的最終元件採取行動的時候了。

  • 處理 size = 0 的情況(表示 LinkedHashSet 為空)應取決於您的特定要求和注意事項。

程式

import java.util.ArrayList;
import java.util.LinkedHashSet;

public class LastElementExample {
   public static void main(String[] args) {
      LinkedHashSet<String> linkedSet = new LinkedHashSet<>();
      linkedSet.add("Apple");
      linkedSet.add("Banana");
      linkedSet.add("Orange");
      linkedSet.add("Mango");

      ArrayList<String> arrayList = new ArrayList<>(linkedSet);
      String lastElement = arrayList.get(arrayList.size() - 1);

      System.out.println("Last element: " + lastElement);
   }
}

輸出

Last element: Mango

方法二:透過遍歷LinkedHashSet進行迭代

Java允許使用者透過多個步驟迭代遍歷LinkedHashSet,從建立一個空的LinkedHashSet到新增元素。在新增元素後,可以使用迭代器或for-each循環來初始化迭代- 迭代器可以使用LinkedHashSet內部的iterator()方法存取它們的對象,而for-each循環可以使用hasNext()方法檢查是否還有更多元素

每次迭代,使用next()方法存取並檢索當前元素,並使用該元素的值更新一個變數;到迭代結束時,該變數應包含最後一個元素,並且您可以根據需要將該變數使用於未來的操作或處理

演算法

  • 建立一個空的 LinkedHashSet。

  • 將元素加入LinkedHashSet中

  • #使用迭代器或 for-each 迴圈遍歷 LinkedHashSet:

    • 使用 LinkedHashSet 的 iterator() 方法建立迭代器。

    • 使用 while 迴圈和 hasNext() 方法來辨識是否還有更多元素。

    • 在迴圈中使用 next() 方法來檢索目前元素。

  • 在每次迭代期間將目前元素的值更新到適當的變數中

  • 一旦迭代完成,變數將包含其最後一個元素。

程式

import java.util.Iterator;
import java.util.LinkedHashSet;

public class LastElementExample {
   public static void main(String[] args) {
      LinkedHashSet<Integer> linkedSet = new LinkedHashSet<>();
      linkedSet.add(10);
      linkedSet.add(20);
      linkedSet.add(30);
      linkedSet.add(40);

      Integer lastElement = null;
      Iterator<Integer> iterator = linkedSet.iterator();
      while (iterator.hasNext()) {
         lastElement = iterator.next();
      }

      System.out.println("Last element: " + lastElement);
   }
}

輸出

Last element: 40

方法 3:Java 8 Stream API

要使用 Java 8 Stream API 從 LinkedHashSet 取得最後一個元素,請依照下列步驟操作。建立一個空的LinkedHashSet,加入元素,使用stream()方法轉換為流,使用lambda函數傳回標識值的reduce()終端操作可以將流減少為單一元素;在這種情況下,lambda 總是傳回表示目前元素的第二個參數。

最后,当遇到空 LinkedHashSet 时使用 orElse() 方法,并为 orElse() 情况分配默认值(例如 null),然后包含该 LinkedHashSet 中的最后一个元素以进行进一步的处理操作或处理目的。

算法

  • 创建一个空的 LinkedHashSet。

  • 将元素添加到LinkedHashSet中

  • 使用stream()方法将LinkedHashSet转换为Stream

  • 利用reduce() 终端操作需要两个参数 - 一个始终返回其第二个参数作为其参数的无限 lambda 函数以及 BinaryOperators 的标识值。

  • Reduce 将有效地将数组转换为完整的元素 - 例如,成为 LinkedHashSet 的一部分作为其最终元素。

程序

import java.util.LinkedHashSet;
import java.util.Optional;

public class LastElementExample {
   public static void main(String[] args) {
      LinkedHashSet<String> linkedSet = new LinkedHashSet<>();
      linkedSet.add("Carrot");
      linkedSet.add("Broccoli");
      linkedSet.add("Spinach");
      linkedSet.add("Tomato");

      Optional<String> lastElement = linkedSet.stream().reduce((first, second) -> second);

      if (lastElement.isPresent()) {
         System.out.println("Last vegetable: " + lastElement.get());
      } else {
         System.out.println("LinkedHashSet is empty.");
      }
   }
}

输出

Last vegetable: Tomato

结论

本教程强调了在Java中从LinkedHashSet中检索最后一个元素的有效方法,而不需要专门的方法来完成此任务。通过将其LinkedHashSet转换为ArrayList,并将其索引号作为最后一个元素的索引号进行访问。通过跟踪遇到的最后一个元素来搜索LinkedHashSet可以实现检索

此外,使用 Java 8 的 Stream API 及其归约操作提供了一个优雅的解决方案。这些方法提供了灵活性、效率并维护 LinkedHashSet 的插入顺序。通过转换为 ArrayList、迭代或使用 Java 的 Stream API API,Java 开发人员可以在各种情况下自信地从 LinkedHashSet 中提取最后一个元素。

以上是如何在Java中取得LinkedHashSet的最後一個元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除