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对象。我想我没有把它描述清楚,所以我又问了一个新问题。是的,但看起来有点麻烦。