Java lambdaları için oldukça yeni ve ne istediğimin mümkün olup olmadığından emin değilim: Filtrelemek istediğim nesnelerin bir listesi var Belirli bir koşul eşleşen olduğunu bunlardan olanlar ayıklamak ve bir ayrılmış liste koydu (yani değiştirilmemiş orijinal listeyi tutmak, onlara bazı işlemi gerçekleştirebilir) Ben bu geldi:Java lambdas: Listeden yeni bir listeye kopyalayın
List<Suggestion> only_translations = original_list.stream().
filter(t -> t.isTranslation).
collect(Collectors.toCollection(() -> new ArrayList<Suggestion>()));
Ama Yeni bir liste nesnesi alıyorum, düğümler orijinal olanlara (orijinal listeden kopyalanan yeni nesneler değil, referans olarak) bağlı gibi görünüyor, böylece yeni listedeki nesneleri değiştirmek orijinal nesnedeki nesneleri de değiştiriyor .
Yani, bunu başarmak mümkün olup olmadığını bilmek istiyorum (lambdalar kullanarak, tüm öğeleri yineleyerek "klasik" şekilde yapabilirim biliyorum), ve bu durumda, nasıl. Şimdiden teşekkürler!
'toplaması()' değiştirilebilir bir azalma içindir. –
öyleyse ... bunun yerine ne kullanmalıyım? – motagirl2
@JudeNiroshan - Hangi argümanı verdiğinize bağlıdır. Örneğin (Collectors.toList()) 'toplayın. –