简体   繁体   English

Java8:从列表中对象的特定字段中选择最小值

[英]Java8: select min value from specific field of the objects in a list

Suppose to have a class Obj 假设有一个Obj类

class Obj{

  int field;
}

and that you have a list of Obj instances, ie List<Obj> lst . 并且你有一个Obj实例List<Obj> lst ,即List<Obj> lst

Now, how can I find in Java8 the minimum value of the int fields field from the objects in list lst ? 现在,我如何在Java8中找到列表lst对象的int字段field的最小值?

   list.stream().min((o1,o2) -> Integer.compare(o1.field,o2.field))

Brian Goetz的评论提供了更好的解决方案

list.stream().min(Comparator.comparingInt(Obj::getField)) 

你也可以

int min = list.stream().mapToInt(Obj::getField).min();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM