2016-04-01 3 views
-2

У меня есть список объектов, и я просто получу свойство всех объектов в списке. Я знаю его простой, но acutally я havn't нашел, как я могу это сделать:Java-8 stream получить все

List<MyObject> myObjects = ... 

MyOblect myObject = new ... 
myObject.myProperty = ... 

Мой подход:

myObjects.stream().findAll(s -> s.getMyProperty())... 
+0

Что значит «получить свойство всех объектов»? Если в вашем списке есть * n * объекты, у вас есть значения * n * для этого свойства. Кроме того, ваша проблема может возникнуть из-за вашего растяжения слова «найти». Может быть, вы хотите * собирать * значения вместо ... – Holger

+5

myObjects.stream(). Map (s -> s.getMyProperty()). Collect (Collectors.toList()) - вы получите список myProperty всех объектов – Rustam

+0

Thats it , благодаря! – quma

ответ

3

Вы, вероятно, ищут map и collect методы:

List<T> list = myObjects.stream().map(s -> s.getMyProperty()).collect(Collectors.toList()); 
+0

Список как возвращаемый тип сделает код компилятором –

+1

Также вы можете «упростить» это следующим образом: myObjects.stream(). Map (MyObject :: getMyProperty) .collect (Collectors.toList()); –