如何在Java中查詢LinkedHashSet中的最小或最大元素?
LinkedHashSet是Java集合框架的一個類,它實現了Set介面並擴充套件了HashSet類。它是一種連結串列型別的集合類。它按插入順序儲存和返回物件。從LinkedHashSet集合中查詢最大和最小元素是考試甚至工作面試中經常遇到的常見任務之一。在本文中,我們將探討一些執行此任務的方法。
從LinkedHashSet獲取最小和最大元素的程式
為了從LinkedHashSet集合中查詢最大和最小元素,我們將使用以下方法:
迭代LinkedHashSet
將LinkedHashSet轉換為TreeSet
使用min()和max()方法
讓我們一一討論它們。
使用迭代
藉助forEach迴圈,我們可以迭代LinkedHashSet集合的元素以獲取最大和最小元素。
示例1
以下示例演示了在LinkedHashSet中查詢最大和最小元素時forEach迴圈的實際實現。
方法
我們的第一步是匯入“java.util”包,以便我們可以使用LinkedHashSet類的功能。
然後,建立一個LinkedHashSet集合,並使用內建方法“add()”儲存一些元素。
初始化兩個Integer型別的變數來儲存最大和最小元素。
現在,建立一個forEach迴圈,並在其中定義兩個if塊。第一個if塊將檢查最小元素,第二個if塊將檢查最大元素。
最後,列印結果並退出。
import java.util.*; public class MinMax { public static void main(String[] args) { // Creating a LinkedHashSet LinkedHashSet<Integer> lHset = new LinkedHashSet<>(); // Adding elements to the set lHset.add(57); lHset.add(68); lHset.add(79); lHset.add(88); lHset.add(95); // to store the maximum and minimum element Integer minElem = null; Integer maxElem = null; // using for-each loop to find minimum and maximum elements for (Integer element : lHset) { // checking minimum element if (minElem == null || element < minElem) { minElem = element; } // checking maximum element if (maxElem == null || element> maxElem) { maxElem = element; } } System.out.println("List of elements from LinkedHashSet: " + lHset); System.out.println("The Minimum element from LinkedHashSet: " + minElem); System.out.println("The Maximum element from LinkedHashSet: " + maxElem); } }
輸出
List of elements from LinkedHashSet: [57, 68, 79, 88, 95] The Minimum element from LinkedHashSet: 57 The Maximum element from LinkedHashSet: 95
使用TreeSet
TreeSet也是Java集合框架的一個類,它實現了NavigableSet介面。它以樹結構以及排序的方式儲存集合的元素,這使其成為從LinkedHashSet檢索最大和最小元素的最佳選擇。
示例2
在下面的示例中,我們將使用TreeSet從LinkedHashSet獲取最小和最大元素。
方法
遵循前面示例的前兩步。
然後,將LinkedHashSet集合轉換為TreeSet,以便第一個元素成為最小元素,最後一個元素成為最大元素。
現在,使用內建方法“first()”獲取最小元素,使用“last()”獲取最大元素。
import java.util.*; public class MinMax { public static void main(String[] args) { // Creating a LinkedHashSet LinkedHashSet<Integer> lHset = new LinkedHashSet<>(); // Adding elements to the set lHset.add(57); lHset.add(68); lHset.add(79); lHset.add(88); lHset.add(95); System.out.println("List of elements from LinkedHashSet: " + lHset); // converting LinkedHashSet to TreeSet TreeSet<Integer> newTree = new TreeSet<>(lHset); // getting the minimum element System.out.println("The Minimum element from LinkedHashSet: " + newTree.first()); // getting the maximum element System.out.println("The Maximum element from LinkedHashSet: " + newTree.last()); } }
輸出
List of elements from LinkedHashSet: [57, 68, 79, 88, 95] The Minimum element from LinkedHashSet: 57 The Maximum element from LinkedHashSet: 95
使用min()和max()方法
從LinkedHashSet獲取最小和最大元素的一種簡單方法是使用內建方法“min()”和“max()”。“min()”方法返回LinkedHashSet中的最小元素,“max()”方法返回最大元素。請注意,這兩種方法都與“Collections”一起使用。
示例3
在下面的示例中,我們將使用“min()”和“max()”方法查詢其最小和最大元素,而不是迭代和轉換LinkedHashSet集合。
import java.util.*; public class MinMax { public static void main(String[] args) { // Creating a LinkedHashSet LinkedHashSet<Integer> lHset = new LinkedHashSet<>(); // Adding elements to the set lHset.add(57); lHset.add(68); lHset.add(79); lHset.add(88); lHset.add(95); System.out.println("List of elements from LinkedHashSet: " + lHset); // getting the minimum element System.out.println("The Minimum element from LinkedHashSet: " + Collections.min(lHset)); // getting the maximum element System.out.println("The Maximum element from LinkedHashSet: " + Collections.max(lHset)); } }
輸出
List of elements from LinkedHashSet: [57, 68, 79, 88, 95] The Minimum element from LinkedHashSet: 57 The Maximum element from LinkedHashSet: 95
結論
我們從介紹LinkedHashSet開始本文,在下一節中,我們討論了三種從LinkedHashSet查詢最小和最大元素的方法。此外,我們還了解了TreeSet的基礎知識以及Java集合框架的一些內建方法,包括“min()”、“max()”、“first()”和“last()”。