如何在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()”。

更新于:2023年7月20日

97 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告