JavaにおけるCollectionsのminとmaxメソッド

9077 ワード

方法1
public static > T min(Collection extends T> coll)
このメソッドでは、Comparableインタフェースを実装したオブジェクトクラスのセットを入力する必要があります.
Comparableを実装したオブジェクトクラスの作成
public class Student1 implements Comparable {

    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 list1 = new ArrayList();
        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());
    }
}

 
方法2
public static 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 list2 = new ArrayList();
        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 {
    @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;
    }
}

 
転載先:https://www.cnblogs.com/stonesingsong/p/6548894.html