📅  最后修改于: 2023-12-03 15:02:04.118000             🧑  作者: Mango
在开发过程中,我们经常需要在列表中查找最小值和最大值。Java提供了一些内置方法来执行此操作。
Java中,我们可以使用Collections
类的min
和max
方法来查找列表中的最小值和最大值。
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
如果要查找的对象不是简单的数字,而是自定义的对象,则可以使用min
和max
方法的重载版本,并提供一个比较器来定义查找时的排序规则。
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
类中的min
和max
方法可以轻松地查找列表中的最小值和最大值。通过提供自定义比较器,我们可以定义自己的排序规则,并在查找中使用它。