📌  相关文章
📜  Java列表中的最小值和最大值(1)

📅  最后修改于: 2023-12-03 15:02:04.118000             🧑  作者: Mango

Java列表中的最小值和最大值

在开发过程中,我们经常需要在列表中查找最小值和最大值。Java提供了一些内置方法来执行此操作。

查找最小值和最大值

Java中,我们可以使用Collections类的minmax方法来查找列表中的最小值和最大值。

List<Integer> numbers = Arrays.asList(23, 45, 67, 12, 55);

// 查找最小值
int minValue = Collections.min(numbers);
System.out.println("列表中的最小值为:" + minValue);

// 查找最大值
int maxValue = Collections.max(numbers);
System.out.println("列表中的最大值为:" + maxValue);

以上代码将输出列表中的最小值和最大值。

列表中的最小值为:12
列表中的最大值为:67
自定义比较器

如果要查找的对象不是简单的数字,而是自定义的对象,则可以使用minmax方法的重载版本,并提供一个比较器来定义查找时的排序规则。

List<Employee> employees = Arrays.asList(
        new Employee("John", 6000),
        new Employee("David", 8000),
        new Employee("Steven", 5000)
);

// 自定义比较器
Comparator<Employee> salaryComparator = new Comparator<Employee>() {
    @Override
    public int compare(Employee e1, Employee e2) {
        return Integer.compare(e1.getSalary(), e2.getSalary());
    }
};

// 查找最小值
Employee minEmployeeBySalary = Collections.min(employees, salaryComparator);
System.out.println("薪资最少的员工是:" + minEmployeeBySalary.getName());

// 查找最大值
Employee maxEmployeeBySalary = Collections.max(employees, salaryComparator);
System.out.println("薪资最高的员工是:" + maxEmployeeBySalary.getName());

以上代码将输出列表中薪资最少和最高的员工的姓名。

薪资最少的员工是:Steven
薪资最高的员工是:David
结论

使用Java内置的Collections类中的minmax方法可以轻松地查找列表中的最小值和最大值。通过提供自定义比较器,我们可以定义自己的排序规则,并在查找中使用它。