2016-04-01 51 views
-2

Ben bir nesne listesi var ve basit bir listede tüm nesnelerin bir özellik elde edeceğiz. Ben basit biliyorum ama acutally ben bunu nasıl yapabilirim bulundu havn't:Java-8 stream almak

List<MyObject> myObjects = ... 

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

Benim yaklaşım:

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

“Tüm nesnelerin bir özelliğini almak” ile ne demek istiyorsun? Listenizde * n * nesneleri varsa, bu mülk için * n * değerleriniz vardır. Bunun yanı sıra, probleminiz “bul” kelimesinin uzamasından kaynaklanıyor olabilir. Belki de * değerleri toplamak * yerine * – Holger

+5

myObjects.stream() harita (s -> s.getMyProperty()) toplayın (Collectors.toList()) - tüm nesnelerin myProperty listesini alacaksınız – Rustam

+0

Thats it , Teşekkürler! – quma

cevap

3

Muhtemelen map ve collect yöntemler aramaktadır:

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

Liste bir dönüş türü olarak kodu derler –

+1

yapacaktır Ayrıca, bu gibi "basitleştirebilir": myObjects.stream(). Map (MyObject :: getMyProperty) .collect (Collectors.toList()); –

İlgili konular