Java 寻找一个集合的最小和最大元素

Java 寻找一个集合的最小和最大元素

集合是一组单独的对象,作为一个单元来表示。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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册