当前位置: 首页 > 知识库问答 >
问题:

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

钱华晖
2023-03-14

假设有一个Obj类

class Obj{

  int field;
}

你有一个Obj实例列表,即list

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


共有2个答案

南门洋
2023-03-14

你也可以做

int min = list.stream().mapToInt(Obj::getField).min();
东门航
2023-03-14
   list.stream().min((o1,o2) -> Integer.compare(o1.field,o2.field))

来自Brian Goetz评论的其他更好的解决方案

list.stream().min(Comparator.comparingInt(Obj::getField)) 
 类似资料:
  • 假设有一个类Obj 并且您有一个实例列表,即。 现在,我如何在Java8中用流找到来自列表中对象的int字段值的和(例如,对于对象,标准是)?

  • 问题内容: 假设有一个Obj类 并且您有一个实例列表,即。 现在,如何在Java8中使用过滤条件从流中找到列表中的对象的int字段值的总和(例如,对于object ,条件为)? 问题答案: 你可以做 或(使用方法参考)

  • 我有一个对象的arraylist,其中有一个字段“name”,还有一个名称列表。我必须从列表中选择包含任何名称的所有对象。如何在java中最有效地实现这一点。任何代码片段都将受到高度赞赏。 例子: 让类名为 A由id、name、subject等字段组成。 那么让我们假设我有一个列表 所以假设我有第二个列表 因此,我只想从objectsA列表中选择那些名称字段由名称列表中的名称组成的对象,也就是说,

  • 假设有一个类: ...您有一个实例列表,即

  • 问题内容: 说我有一个对象列表,其中包含两个字段和,均为String类型。 如果有可能,如何在不迭代列表的情况下获取所有值的列表? 问题答案: 对象是对内存地址的引用。然后,该对象的字段是指向其他内存地址的其他引用。因此,对象列表是引用列表。因此,列表不可能直接访问对象字段(由引用给出的引用)。最简洁的答案是不。 注意:无论如何,您都会找到可以实现所需功能的API,但该API仍在内部循环。

  • 我有这样的课: 和类似的列表,其中填充了元素。 如何使用Java8获得的最小值和最大值?