• Java中Collections的min和max方法


    方法一

    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;
        }
    }
  • 相关阅读:
    java===单类设计模式之饿汉式与懒汉式
    java===数组工具类创建,并使用eclipse导出说明文档.html
    java===static关键字
    java===this关键字
    java=====二维数组应用
    java===算法思想锻炼
    【CSP-S 2019模拟】题解
    【CSP-S 2019模拟】题解
    【LOJ#2124】【HAOI2015】—树上染色(树形dp)
    【LOJ#2019】【AHOI / HNOI2017】—影魔(线段树+扫描线)
  • 原文地址:https://www.cnblogs.com/stonesingsong/p/6548894.html
Copyright © 2020-2023  润新知