可以使用 'Collectors.maxBy' 和 'Collectors.minBy' 方法来获取最大值和最小值的对象,然后再获取其 ID 属性。

假设对象的类为 'MyObject',ID 属性的名字为 'id',对象列表为 'List objects',可以使用以下代码来实现:

import java.util.Comparator;
import java.util.List;
import java.util.Optional;

public class Main {
    public static void main(String[] args) {
        List<MyObject> objects = ...; // 初始化对象列表

        Optional<Integer> maxId = objects.stream()
                .max(Comparator.comparingInt(MyObject::getId))
                .map(MyObject::getId);
        Optional<Integer> minId = objects.stream()
                .min(Comparator.comparingInt(MyObject::getId))
                .map(MyObject::getId);

        if (maxId.isPresent()) {
            System.out.println("最大ID:" + maxId.get());
        }
        if (minId.isPresent()) {
            System.out.println("最小ID:" + minId.get());
        }
    }
}

class MyObject {
    private int id;

    public MyObject(int id) {
        this.id = id;
    }

    public int getId() {
        return id;
    }
}

上述代码中,通过 'Comparator.comparingInt(MyObject::getId)' 指定了比较对象的方式,然后使用 'max' 和 'min' 方法来获取最大值和最小值的对象。最后通过 'map(MyObject::getId)' 将对象映射为其 ID 属性。

Java Stream 一次循环获取对象中最大值和最小值 ID 属性

原文地址: https://www.cveoy.top/t/topic/o2iJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录