Java 如何从对象列表中获取指定字段值为max的元素

Java 如何从对象列表中获取指定字段值为max的元素,java,java-8,java-stream,Java,Java 8,Java Stream,如何从对象列表中获取指定字段值最大的元素 public class MyObj { private String name; private int value; // getter & setter } List<MyObj> list = Arrays.asList( new MyObj("a", 1), new MyObj("b", 1), new MyOb

如何从对象列表中获取指定字段值最大的元素

public class MyObj {
    private String name;
    private int value;
    // getter & setter
}

List<MyObj> list = Arrays.asList(
        new MyObj("a", 1),
        new MyObj("b", 1),
        new MyObj("c", 2),
        new MyObj("d", 2),
        new MyObj("e", 3),
        new MyObj("f", 3)
);
// how to get the objs which value is max, here is MyObj("e", 3) and MyObj("f", 3)
List<MyObj> maxList = //todo ;
公共类MyObj{
私有字符串名称;
私有int值;
//吸气剂和塞特
}
List=Arrays.asList(
新MyObj(“a”,1),
新MyObj(“b”,1),
新MyObj(“c”,2),
新MyObj(“d”,2),
新MyObj(“e”,3),
新MyObj(“f”,3)
);
//如何获取最大值的对象,这里是MyObj(“e”,3)和MyObj(“f”,3)
List maxList=//todo;

注意:不获取最大值

这将完成工作。它首先根据该值获取最大值,然后根据该值过滤列表

int maxValue = list.stream()
        .mapToInt(MyObj::getValue)
        .max().orElse(Integer.MIN_VALUE);

List<MyObj> maxList = list.stream()
        .filter(obj -> obj.getValue() == maxValue)
        .collect(Collectors.toList());
int maxValue=list.stream()
.mapToInt(MyObj::getValue)
.max().orElse(整数.MIN_值);
List maxList=List.stream()
.filter(obj->obj.getValue()==maxValue)
.collect(Collectors.toList());

您已经在下面的一个链接中得到了答案,该链接指向一个重复的问题,用于关闭您的应用程序。当答案已经给你的时候,你为什么还要再问?我读了,但它是为了得到MyObj.value的最大值,而不是所有具有最大值的MyObj对象。我想我没有把它描述清楚,所以我又问了一个新问题。是的,但看起来有点麻烦。