【问题标题】:Java8: select min value from specific field of the objects in a listJava8:从列表中对象的特定字段中选择最小值
【发布时间】:2014-05-31 08:20:34
【问题描述】:

假设有一个类 Obj

class Obj{

  int field;
}

并且您有一个Obj 实例列表,即List<Obj> lst

现在,我如何在 Java8 中从列表 lst 中的对象中找到 int 字段 field 的最小值?

【问题讨论】:

    标签: java java-8 minimum java-stream


    【解决方案1】:
       list.stream().min((o1,o2) -> Integer.compare(o1.field,o2.field))
    

    由 Brian Goetz 提供的来自 cmets 的其他更好的解决方案

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

    【讨论】:

    • 谢谢!正是我想要的
    • 这样会更好:list.stream().min(Comparator.comparingInt(Obj::getField))
    • 不知道那个,谢谢,我认为你的解决方案是迄今为止最好的
    【解决方案2】:

    你也可以这样做

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-01
      • 2014-05-31
      • 1970-01-01
      • 2012-09-24
      • 1970-01-01
      相关资源
      最近更新 更多