📜  查找Java HashSet 的最大元素

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

查找Java HashSet 的最大元素

Java HashSet 类用于创建集合使用的集合,该集合使用散列表用于存储目的,使用称为散列的机制。 Set 的实现类。它继承了抽象类并实现了et接口。主要特征是它不允许重复并在内部使用哈希表。

插图:在 HashSet 中找到最大元素。

Input: [24, 56, 87, 64, 29, 2, 65]
Output: 87

Input: [45, 3, 65, 32, 64, 12, 43]
Output: 65

方法:

  • 使用 For-each 循环(朴素的方法)
  • 使用 HashSet 的Collection.max()方法(最优方法)

方法一:使用for循环打印HashSet中的最大元素。

方法:

  1. 创建一个HashSet对象
  2. 向创建的对象添加元素
  3. 创建一个变量并为其分配值 MIN_VALUE
  4. 迭代使用每个循环

示例 1

Java
// Java Program to find maximum element on HashSet
  
// Importing all java input output classes
// Importing Collection and HashSet class from
// java.util package
import java.io.*;
import java.util.Collections;
import java.util.HashSet;
  
// Class
class GFG {
  
    // Main driver method
    public static void main(String[] args)
    {
  
        // Creating an object of HashSet (of Integer type)
        HashSet gfg = new HashSet();
  
        // Adding elements in above object of HashSet
        // Custom inputs
        gfg.add(24);
        gfg.add(56);
        gfg.add(87);
        gfg.add(64);
        gfg.add(29);
        gfg.add(2);
        gfg.add(65);
  
        // Print all the elements in the above HashSet
        System.out.println("Elements in HashSet = " + gfg);
  
        // Remember :
        // In computing maximum assign -∞ as initial max
        // In computing minimum assign +∞ as initial min
  
        // Initially assigning -(infinity) as max value
        // so as to deal with garbage value issues.
        int max = Integer.MIN_VALUE;
  
        // For each loop to iterate over elements of HashSet
        // to find maximum among all elements in Set
        for (int var : gfg) {
  
            // For elements in Set
            if (var > max)
  
                // Update the current maximum element
                max = var;
        }
  
        // Display and print the
        // maximum element in a HashSet
        System.out.println("Maximum element in HashSet = "
                           + max);
    }
}


Java
// Java Program to find maximum element on HashSet
  
// Importing all java input-output classes
// Importing Collection and HashSet class from
// java.util package
import java.io.*;
import java.util.Collections;
import java.util.HashSet;
  
// Class
class GFG {
  
    // Main driver method
    public static void main(String[] args)
    {
  
        // Creating object of HashSet
        // Declaring String type objects
        HashSet gfg = new HashSet();
  
        // Adding element in above object of HashSet
        // Custom inputs
        gfg.add("Geekss");
        gfg.add("Geeks");
        gfg.add("Geek");
  
        // Print and display all elements inside the object
        System.out.println("Elements in HashSet = " + gfg);
  
        // Using Collection.max() Method to find
        // max string in HashSet
        Object obj = Collections.max(gfg);
  
        // Display Maximum element in a HashSet
        System.out.println("Maximum element :" + obj);
    }
}


输出
Elements in HashSet = [64, 65, 2, 87, 24, 56, 29]
Maximum element in HashSet = 87

时间复杂度:O(n),其中 n 是 HashSet 中的元素数量。

方法二:使用集合类的HashSet的Collection.max()方法。

句法:

public static  T max(Collection coll)

参数:该方法以集合coll作为参数,确定其最大元素。

返回值:此方法根据其元素的自然顺序返回给定集合的最大元素。

异常:此方法抛出以下异常:

  • ClassCastException 如果集合包含不可相互比较的元素(例如,字符串和整数)。
  • 无此类元素异常 如果集合为空

方法:

  1. 创建一个HashSet对象
  2. 向创建的对象添加元素
  3. 使用Collection.max()方法显示创建后生成的非重复列表中最大的字符串。请注意,不会有单个重复元素。

示例 2

Java

// Java Program to find maximum element on HashSet
  
// Importing all java input-output classes
// Importing Collection and HashSet class from
// java.util package
import java.io.*;
import java.util.Collections;
import java.util.HashSet;
  
// Class
class GFG {
  
    // Main driver method
    public static void main(String[] args)
    {
  
        // Creating object of HashSet
        // Declaring String type objects
        HashSet gfg = new HashSet();
  
        // Adding element in above object of HashSet
        // Custom inputs
        gfg.add("Geekss");
        gfg.add("Geeks");
        gfg.add("Geek");
  
        // Print and display all elements inside the object
        System.out.println("Elements in HashSet = " + gfg);
  
        // Using Collection.max() Method to find
        // max string in HashSet
        Object obj = Collections.max(gfg);
  
        // Display Maximum element in a HashSet
        System.out.println("Maximum element :" + obj);
    }
}
输出
Elements in HashSet = [Geekss, Geek, Geeks]
Maximum element :Geekss