Java List获取集合中的最大值或最小值

1.List集合中的元素为基本类型,我们可以使用java.util中的Collections提供的方法,来取出最大值或者最小值。
(1)Integer类型

package com.yuxuange.study.test;

import java.util.*;

public class Test {

    public static void main(String[] args) {
        List<Integer> list = new LinkedList<>();
        list.add(99);
        list.add(54);
        list.add(82);
        list.add(12);
        list.add(33);
        list.add(79);
        list.add(90);
        list.add(7);
        list.add(66);
        list.add(38);
        list.add(7);
        System.out.println(list.toString());
        Integer max = Collections.max(list);
        System.out.println("集合中最大值为:" + max);
        Integer min = Collections.min(list);
        System.out.println("集合中最小值为:" + min);
    }
}

输出的结果为:
整型输出结果
(2)Double类型

package com.yuxuange.study.test;

import java.util.*;

public class Test {

    public static void main(String[] args) {
        List<Double> list = new LinkedList<>();
        list.add(97.42);
        list.add(83.555);
        list.add(99.8045);
        list.add(45.33);
        list.add(8.2006);
        list.add(54.333);
        list.add(72.9055);
        list.add(56.999997);
        list.add(20.9);
        list.add(6.099912);
        System.out.println(list.toString());
        Double max = Collections.max(list);
        System.out.println("集合中最大值为:" + max);
        Double min = Collections.min(list);
        System.out.println("集合中最小值为:" + min);
    }
}

输出结果为:
Double类型输出结果
2.List集合中的元素为引用类型时
(1)String类型

package com.yuxuange.study.test;

import java.util.*;

public class Test {

    public static void main(String[] args) {
        List<String> list = new LinkedList<>();
        list.add("97.435");
        list.add("92");
        list.add("80.3455");
        list.add("10.9833");
        list.add("52");
        list.add("35.663444");
        list.add("79.0");
        list.add("42");
        list.add("83.482");
        list.add("26.454448");
        System.out.println(list.toString());
        String max = Collections.max(list);
        System.out.println("集合中最大值为:" + max);
        String min = Collections.min(list);
        System.out.println("集合中最小值为:" + min);
    }
}

String类型输出结果

(2)对象,比如有个对象集合,集合中保存了学生的对象信息,我们要根据学号,年龄等字段找出对应的最大值或者最小值

package com.yuxuange.study.test;

import java.util.*;

public class Test {

    public static void main(String[] args) {
        List<Student> list = new LinkedList<>();
        Student zhangsan = new Student(99, "张三", 28, 96.0);
        Student lisi = new Student(82, "李四", 25, 89.0);
        Student wangwu = new Student(26, "王五", 23, 72.5);
        Student zhaoliu = new Student(68, "赵六", 30, 65.5);
        Student tianqi = new Student(8, "田七", 26, 100.0);
        Student fengba = new Student(47, "冯八", 21, 52.5);
        Student jinjiu = new Student(14, "金九", 27, 46.5);
        list.add(zhangsan);
        list.add(lisi);
        list.add(wangwu);
        list.add(zhaoliu);
        list.add(tianqi);
        list.add(fengba);
        list.add(jinjiu);
        System.out.println(list.toString());
        Student noMax = list.stream().max(Comparator.comparing(Student::getNo)).get();
        Student noMin = list.stream().min(Comparator.comparing(Student::getNo)).get();
        System.out.println("集合中学号最大的学生信息为" + noMax);
        System.out.println("集合中学号最小的学生信息为" + noMin);
        Student ageMax = list.stream().max(Comparator.comparing(Student::getAge)).get();
        Student ageMin = list.stream().min(Comparator.comparing(Student::getAge)).get();
        System.out.println("集合中年龄最大的学生信息为" + ageMax);
        System.out.println("集合中年龄最小的学生信息为" + ageMin);
    }
}

class Student {

    private Integer no;

    private String name;

    private Integer age;

    private Double score;

    public Student(Integer no, String name, Integer age, Double score) {
        this.no = no;
        this.name = name;
        this.age = age;
        this.score = score;
    }

    public Integer getNo() {
        return no;
    }

    public void setNo(Integer no) {
        this.no = no;
    }

    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;
    }

    public Double getScore() {
        return score;
    }

    public void setScore(Double score) {
        this.score = score;
    }

    @Override
    public String toString() {
        return "Student{" +
                "no=" + no +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", score=" + score +
                '}';
    }
}

输出结果为:
对象类型输出结果

你可能感兴趣的:(Java,java)