Java中Collections的min和max方法
2024-08-27 11:25:46
方法一
public static <T extends Object & Comparable<? super T>> T min(Collection<? extends T> coll)
此方法需要传入一个实现了Comparable接口的对象类的集合
创建实现了Comparable的对象类
public class Student1 implements Comparable<Student1> { private String name;
private int age; public Student1() {
} public Student1(String name, int age) {
this.name = name;
this.age = age;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
} @Override
public int compareTo(Student1 s) {
int num = this.age - s.age;
int num1 = (num == 0 ? this.name.compareTo(s.name) : num);
return num1;
}
}
调用
import java.util.ArrayList;
import java.util.Collections;
import java.util.List; public class Student1Test {
public static void main(String[] args) {
List<Student1> list1 = new ArrayList<Student1>();
list1.add(new Student1("林青霞", 27));
list1.add(new Student1("风清扬", 30));
list1.add(new Student1("刘晓曲", 28));
list1.add(new Student1("武鑫", 29));
list1.add(new Student1("林青霞", 27)); Student1 min=Collections.min(list1);
System.out.println(min.getName()+"---"+min.getAge());
Student1 max=Collections.max(list1);
System.out.println(max.getName()+"---"+max.getAge());
}
}
方法二
public static <T> T min(Collection<? extends T> coll, Comparator<? super T> comp)
此方法传入一个对象类的集合,以及一个比较器
创建对象类
public class Student2 { private String name;
private int age; public Student2() {
} public Student2(String name, int age) {
this.name = name;
this.age = age;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
}
}
调用
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List; public class Student2Test {
public static void main(String[] args) {
List<Student2> list2 = new ArrayList<Student2>();
list2.add(new Student2("林青霞", 27));
list2.add(new Student2("风清扬", 30));
list2.add(new Student2("刘晓曲", 28));
list2.add(new Student2("武鑫", 29));
list2.add(new Student2("林青霞", 27)); Student2 min=Collections.min(list2,new MyComparator());
System.out.println(min.getName()+"---"+min.getAge());
Student2 max=Collections.max(list2,new MyComparator());
System.out.println(max.getName()+"---"+max.getAge());
}
} class MyComparator implements Comparator<Student2> {
@Override
public int compare(Student2 s1, Student2 s2) {
int num = s1.getAge() - s2.getAge();
int num1 = (num == 0 ? s1.getName().compareTo(s2.getName()) : num);
return num1;
}
}
最新文章
- Integer to English Words
- jquery 购物车飞入效果
- XCodeo如何去除多余的模拟器---学习笔记七
- 【CodeVS 1218】【NOIP 2012】疫情控制
- 2013年7月份第4周51Aspx源码发布详情
- POJ2739 - Sum of Consecutive Prime Numbers(素数问题)
- Hive 创建和生成Rcfile 和SequenceFile格式的表
- MapReduce中的排序
- 利用glibc中锁结构的信息解决死锁问题
- Struts2中在Action里面向前端页面传值的方法总结
- [SQL]死锁处理语句
- NOIP模拟赛---1.生气的LJJ (anger)
- ConnectString ()函数的介绍
- 一个Bootstrap的例子--关于validate
- Linux多线程实践(4) --线程特定数据
- mac上Python多版本共存
- CNN:人工智能之神经网络算法进阶优化,六种不同优化算法实现手写数字识别逐步提高,应用案例自动驾驶之捕捉并识别周围车牌号—Jason niu
- EM算法——Expectation-Maximization
- OSLab文件描述符
- HTML5 CANVAS 弹幕插件