📜  如何从Java HashSet 中找到最小值和最大值?

📅  最后修改于: 2022-05-13 01:55:01.464000             🧑  作者: Mango

如何从Java HashSet 中找到最小值和最大值?

哈希集 用于在Java中存储不同的值。 HashSet 不保证元素的顺序随时间保持不变,这意味着当我们迭代 HashSet 时,不能保证我们得到的元素顺序与我们按顺序添加的顺序相同。 HashSet 不提供任何内置方法来获取最大值和最小值。

有几种方法可以从Java中的 HashSet 中找到最大值和最小值:

  1. 使用集合类
  2. 使用简单迭代

方法一:使用Collections

使用Java中的 Collections 类,我们可以借助 Collections 类的max()min()方法找到最大值和最小值。

代码:

Java
// Java code to find the maximum and minimum in HashSet
  
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // New HashSet
        HashSet set = new HashSet<>();
  
        // Add data to Hashset
        set.add(10);
        set.add(20);
        set.add(20);
        set.add(10);
        set.add(50);
        set.add(40);
  
        // Print Maximum value using max method of
        // Collections class
        System.out.println("Maximum value of HashSet : "
                           + Collections.max(set));
  
        // Print Maximum value using max method of
        // Collections class
        System.out.println("Minimum value of HashSet : "
                           + Collections.min(set));
    }
}


Java
// Java code to find the maximum and minimum in HashSet
  
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // New HashSet
        HashSet set = new HashSet<>();
  
        // Add data to Hashset
        set.add(10);
        set.add(20);
        set.add(20);
        set.add(10);
        set.add(50);
        set.add(40);
  
        int max = -1, min = -1;
  
        // Iterate HashSet to get Maximum value
        for (int val : set) {
            if (max == -1) {
                max = val;
            }
            else if (val > max) {
                max = val;
            }
        }
  
        // Iterate HashSet to get Minimum value
        for (int val : set) {
            if (min == -1) {
                min = val;
            }
            else if (val < min) {
                min = val;
            }
        }
  
        // Print Maximum value using max method of
        // Collections class
        System.out.println("Maximum value of HashSet : "
                           + max);
  
        // Print Maximum value using max method of
        // Collections class
        System.out.println("Minimum value of HashSet : "
                           + min);
    }
}


输出
Maximum value of HashSet : 50
Minimum value of HashSet : 10

方法 2:使用简单迭代

我们可以通过简单地迭代 HashSet 并维护 min 和 max 变量并在遍历每个元素并将其与最小值和最大值进行比较时相应地更新它来找到最大值和最小值。

代码:

Java

// Java code to find the maximum and minimum in HashSet
  
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // New HashSet
        HashSet set = new HashSet<>();
  
        // Add data to Hashset
        set.add(10);
        set.add(20);
        set.add(20);
        set.add(10);
        set.add(50);
        set.add(40);
  
        int max = -1, min = -1;
  
        // Iterate HashSet to get Maximum value
        for (int val : set) {
            if (max == -1) {
                max = val;
            }
            else if (val > max) {
                max = val;
            }
        }
  
        // Iterate HashSet to get Minimum value
        for (int val : set) {
            if (min == -1) {
                min = val;
            }
            else if (val < min) {
                min = val;
            }
        }
  
        // Print Maximum value using max method of
        // Collections class
        System.out.println("Maximum value of HashSet : "
                           + max);
  
        // Print Maximum value using max method of
        // Collections class
        System.out.println("Minimum value of HashSet : "
                           + min);
    }
}
输出
Maximum value of HashSet : 50
Minimum value of HashSet : 10