Java 寻找一个集合的最小和最大元素
集合是一组单独的对象,作为一个单元来表示。Java提供了集合框架,它定义了几个类和接口来表示作为一个单元的一组对象。这些都是。
使用Collections.min()和Collections.max()方法可以很容易地找到一个集合的最小和最大元素。这些是Java中集合类的静态方法。因此,它们可以在类名的帮助下直接访问,如下所示。
Object ob = Collections.min(Collection<E> c);
Object ob = Collections.max(Collection<E> c);
Java
从上面的语法中可以看出,Collections.min()和Collections.max()方法以集合为参数。这是要找到最大/最小元素的集合。因此,任何实现Collection接口的类都可以作为这些函数的参数传递,比如Arrays、LinkedList、ArrayList、Set等。因此,任何集合的最大和最小元素都可以很容易地找到。
下面的例子展示了寻找一些集合的最小和最大元素的过程。
例1:在列表中
// Java program to find the minimum and
// maximum element in a List
import java.util.*;
public class GFG {
public static void main(String args[]) throws Exception
{
// Get the ArrayList
List<Integer> list = new ArrayList<Integer>();
// populate the list
list.add(12);
list.add(53);
list.add(30);
list.add(8);
// printing the List
System.out.println("List: " + list);
// getting minimum value
// using min() method
int minList = Collections.min(list);
// getting maximum value
// using max() method
int maxList = Collections.max(list);
// printing the minimum value
System.out.println("Minimum value of list is: "
+ minList);
// printing the maximum value
System.out.println("Maximum value of list is: "
+ maxList);
}
}
Java
输出:
List: [12, 53, 30, 8]
Minimum value of list is: 8
Maximum value of list is: 53
Java
例2:在集
// Java program to find the minimum and
// maximum element in a Set
import java.util.*;
public class GFG {
public static void main(String args[]) throws Exception
{
// Get the HashSet
Set<Integer> set = new HashSet<Integer>();
// fill the hashSet
set.add(3);
set.add(6);
set.add(2);
set.add(9);
// printing the Set
System.out.println("Set: " + set);
// getting minimum value
// using min() method
int minSet = Collections.min(set);
// getting maximum value
// using max() method
int maxSet = Collections.max(set);
// printing the minimum value
System.out.println("Minimum value of set is: "
+ minSet);
// printing the maximum value
System.out.println("Maximum value of set is: "
+ maxSet);
}
}
Java
输出:
Set: [2, 3, 6, 9]
Minimum value of set is: 2
Maximum value of set is: 9
Java
例3:在数组中
// Java program to find the minimum and
// maximum element in an Array
import java.util.*;
public class GFG {
public static void main(String args[]) throws Exception
{
// Get the Array
Integer arr[] = { 2, 5, 1, 8, 34, 20, 4 };
// printing the Array
System.out.println("Array: " + Arrays.toString(arr));
// getting minimum value
// using min() method
int minArray = Collections.min(Arrays.asList(arr));
// getting maximum value
// using max() method
int maxArray
= Collections.max(Arrays.asList(arr));
// printing the minimum value
System.out.println("Minimum value of Array is: "
+ minArray);
// printing the maximum value
System.out.println("Maximum value of Array is: "
+ maxArray);
}
}
Java
输出:
Array: [2, 5, 1, 8, 34, 20, 4]
Minimum value of Array is: 1
Maximum value of Array is: 34
Java
如果集合是一个Map,会发生什么
Map是Java集合框架中的一种不同类型的实体,其中的元素是作为对而不是直接取值。所以Map集合类并没有实现Collection接口。它们实现的是Map接口。因此,Collection.min()和Collection.max()对Map不起作用,并且会产生编译错误。
例子。
// Java program to find the minimum and
// maximum element in a Map
import java.util.*;
public class GFG {
public static void main(String args[]) throws Exception
{
try {
// Creating hashMap
Map<String, Integer> map
= new HashMap<String, Integer>();
// Putting key-value pairs in map
map.put("A", 10);
map.put("B", 15);
map.put("C", 20);
map.put("D", 25);
// Print the map
System.out.println("Map: " + map);
// getting minimum value using min()
int minMap = Collections.min(map);
// getting maximum value using max()
int maxMap = Collections.max(map);
// printing the minimum value
System.out.println("Minimum value of Map is: "
+ minMap);
// printing the maximum value
System.out.println("Maximum value of Map is: "
+ maxMap);
}
catch (NoSuchElementException e) {
System.out.println("Exception: " + e);
}
}
}
Java
输出:
Compile Errors:
prog.java:25: error:
no suitable method found for min(Map)
int minMap = Collections.min(map);
^
method Collections.min(Collection)
is not applicable
Java
如何找到Map的最小和最大元素
虽然Map没有实现Collection接口,但是Map的元素类型,即Key和Value类分别实现了Collection接口。因此,在Map中可以根据他们的Key或Value找到最小和最大的元素。
例子1:根据键值找到Map的最小和最大元素。
// Java program to find the minimum and
// maximum element in a Map
import java.util.*;
public class GFG {
public static void main(String args[]) throws Exception
{
// Creating hashMap
Map<String, Integer> map
= new HashMap<String, Integer>();
// Putting key-value pairs in map
map.put("A", 10);
map.put("B", 15);
map.put("C", 20);
map.put("D", 25);
// Print the map
System.out.println("Map: " + map);
// getting minimum value using min()
String minKey = Collections.min(map.keySet());
// getting maximum value using max()
String maxKey = Collections.max(map.keySet());
// printing the minimum value
System.out.println("Minimum Key of Map is: "
+ minKey);
System.out.println("Value corresponding to "
+ "minimum Key of Map is: "
+ map.get(minKey));
// printing the maximum value
System.out.println("Maximum Key of Map is: " + maxKey);
System.out.println("Value corresponding to "
+ "maximum Key of Map is: "
+ map.get(maxKey));
}
}
Java
输出:
Map: {A=10, B=15, C=20, D=25}
Minimum Key of Map is: A
Value corresponding to minimum Key of Map is: 10
Maximum Key of Map is: D
Value corresponding to maximum Key of Map is: 25
Java
例2:根据值键找到Map的最小和最大元素。
// Java program to find the minimum and
// maximum element in a Map
import java.util.*;
public class GFG {
public static void main(String args[]) throws Exception
{
// Creating hashMap
Map<String, Integer> map
= new HashMap<String, Integer>();
// Putting key-value pairs in map
map.put("A", 10);
map.put("B", 15);
map.put("C", 20);
map.put("D", 25);
// Print the map
System.out.println("Map: " + map);
// getting minimum value using min()
int minValue = Collections.min(map.values());
// getting maximum value using max()
int maxValue = Collections.max(map.values());
// printing the minimum value
System.out.println("Minimum Value of Map is: "
+ minValue);
// printing the maximum value
System.out.println("Maximum Value of Map is: "
+ maxValue);
}
}
Java
输出:
Map: {A=10, B=15, C=20, D=25}
Minimum Value of Map is: 10
Maximum Value of Map is: 25
Java