我對Java lambda表達式很陌生,我不確定是否可以實現: 我有一個對象列表,我想過濾它提取那些他們認爲是符合給定的條件,並把它們放在一個分隔的列表(這樣我就可以對其進行一些操作,保持了原有的列表未修改) 我想出了這一點:Java lambdas:將列表中的節點複製到新列表中
List<Suggestion> only_translations = original_list.stream().
filter(t -> t.isTranslation).
collect(Collectors.toCollection(() -> new ArrayList<Suggestion>()));
但即使如果我得到一個新的列表對象,節點似乎與原來的那些(通過引用,從原來的列表複製的不是新的對象),所以修改的新列表中的對象也被修改了原來的對象。因此,我想知道是否可以實現這一點(使用lambda表達式,我知道我可以做到迭代所有元素的「古典」方式),在這種情況下,如何做到這一點。 在此先感謝!
'collect()'用於可變縮減。 –
所以......我應該用什麼來代替? – motagirl2
@JudeNiroshan - 取決於你給出的論點。例如,收集(Collectors.toList())。 –