如何从Java HashSet 中找到最小值和最大值?
哈希集 用于在Java中存储不同的值。 HashSet 不保证元素的顺序随时间保持不变,这意味着当我们迭代 HashSet 时,不能保证我们得到的元素顺序与我们按顺序添加的顺序相同。 HashSet 不提供任何内置方法来获取最大值和最小值。
有几种方法可以从Java中的 HashSet 中找到最大值和最小值:
- 使用集合类
- 使用简单迭代
方法一:使用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