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 Streamsınıf olarak yöntemleri vardır toList(), toSet()...
Değişkenlerin targetLongListdoğrudan üçüncü satır tarafından atanabilmesinin bir yolu var mı ?
List<Long> targetLongList = sourceLongList.stream().collect(Collectors.toList());
sourceLongListsonra ihtiyacınız yoksaCollection.removeIf(…)kolaylık sağlayın.