可以使用 Java 8 的 Stream API 来实现一次循环获取对象中同时获取最大值和最小值的 ID 属性。

假设有一个对象列表,其中包含了一个 ID 属性,可以按照以下方式实现:

import java.util.*;
import java.util.stream.*;

public class Main {
    public static void main(String[] args) {
        List<MyObject> objects = Arrays.asList(
                new MyObject(1),
                new MyObject(2),
                new MyObject(3),
                new MyObject(4),
                new MyObject(5)
        );

        Optional<Integer> maxId = objects.stream()
                .map(MyObject::getId)
                .max(Integer::compareTo);

        Optional<Integer> minId = objects.stream()
                .map(MyObject::getId)
                .min(Integer::compareTo);

        if (maxId.isPresent()) {
            System.out.println('Max ID: ' + maxId.get());
        }

        if (minId.isPresent()) {
            System.out.println('Min ID: ' + minId.get());
        }
    }
}

class MyObject {
    private int id;

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

    public int getId() {
        return id;
    }
}

在上面的代码中,我们首先使用map方法将对象列表中的每个对象转换为其 ID 属性,然后使用maxmin方法分别获取最大值和最小值的 ID 属性。最后,我们可以使用Optional类来处理可能的空值。

输出结果为:

Max ID: 5
Min ID: 1

这样,我们就在一次循环中同时获取了最大值和最小值的 ID 属性。

Java Stream 获取对象最大最小值 ID - 一次循环高效实现

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

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