Java8: выберите минимальное значение из определенного поля объектов в списке

Предположим, что у вас есть класс Obj

class Obj{

  int field;
}

и что у вас есть список из Obj экземпляров, то есть List<Obj> lst.

Теперь, как я могу найти в Java8 минимальное значение полей int field из объектов в списке lst?


person mat_boy    schedule 16.04.2014    source источник


Ответы (2)


Вы также можете сделать

int min = list.stream().mapToInt(Obj::getField).min();
person Aniket Thakur    schedule 16.04.2014

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

Дополнительное лучшее решение из комментариев Брайана Гетца

list.stream().min(Comparator.comparingInt(Obj::getField)) 
person maczikasz    schedule 16.04.2014
comment
Спасибо! Именно то, что я искал - person mat_boy; 16.04.2014
comment
Это было бы лучше, как: list.stream().min(Comparator.comparingInt(Obj::getField)) - person Brian Goetz; 21.04.2014
comment
Не знал об этом, спасибо, я думаю, что ваше решение пока лучшее - person maczikasz; 22.04.2014