Koleksiyonları kolayca filtrelemek için Java 8 lambdas ile oynuyordum. Ancak sonucu aynı ifadede yeni bir liste olarak almanın kısa bir yolunu bulamadım. İşte şimdiye kadarki en özlü yaklaşımım:
List<Long> sourceLongList = Arrays.asList(1L, 10L, 50L, 80L, 100L, 120L, 133L, 333L);
List<Long> targetLongList = new ArrayList<>();
sourceLongList.stream().filter(l -> l > 100).forEach(targetLongList::add);
İnternetteki örnekler soruma cevap vermedi çünkü yeni bir sonuç listesi oluşturmadan duruyorlar. Daha özlü bir yol olmalı. Bunu, umuyordum Stream
sınıf olarak yöntemleri vardır toList()
, toSet()
...
Değişkenlerin targetLongList
doğrudan üçüncü satır tarafından atanabilmesinin bir yolu var mı ?
List<Long> targetLongList = sourceLongList.stream().collect(Collectors.toList());
sourceLongList
sonra ihtiyacınız yoksaCollection.removeIf(…)
kolaylık sağlayın.