Java Collections的min和max方法

来源:互联网 发布:mac系统 流程图 编辑:程序博客网 时间:2024/05/22 17:21

方法一

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;    }}
转载于:http://www.cnblogs.com/stonesingsong/p/6548894.html