你可以使用min()max()方法来获取流中的最小和最大值,然后使用mapToInt()方法将对象的ID属性映射为整数流,最后使用findFirst()findAny()方法获取最小和最大值的ID属性。

下面是一个示例代码:

import java.util.ArrayList;
import java.util.List;
import java.util.OptionalInt;

class MyClass {
    private int id;

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

    public int getId() {
        return id;
    }
}

public class Main {
    public static void main(String[] args) {
        List<MyClass> myList = new ArrayList<>();
        myList.add(new MyClass(1));
        myList.add(new MyClass(3));
        myList.add(new MyClass(5));
        myList.add(new MyClass(2));

        OptionalInt minId = myList.stream()
                .mapToInt(MyClass::getId)
                .min();

        OptionalInt maxId = myList.stream()
                .mapToInt(MyClass::getId)
                .max();

        if (minId.isPresent()) {
            System.out.println("Minimum ID: " + minId.getAsInt());
        } else {
            System.out.println("No minimum ID found");
        }

        if (maxId.isPresent()) {
            System.out.println("Maximum ID: " + maxId.getAsInt());
        } else {
            System.out.println("No maximum ID found");
        }
    }
}

这段代码会输出:

Minimum ID: 1
Maximum ID: 5
``
java stream一次 循环获取对象中同时获取最大值和最小值的ID属性

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

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