저는 Java lambdas에 새로운 것이므로 원하는 것이 무엇인지를 확신 할 수 없습니다. 필터링 할 대상 목록이 있습니다. 주어진 조건에 일치되는 그 사람들을 추출하고 을 분리 된 목록에 넣어 (그래서 수정되지 않은 원본 목록을 유지, 그들에 대한 몇 가지 작업을 수행 할 수 있습니다) 나는이 함께했다 :Java lambdas : 목록에서 새 목록으로 노드 복사
List<Suggestion> only_translations = original_list.stream().
filter(t -> t.isTranslation).
collect(Collectors.toCollection(() -> new ArrayList<Suggestion>()));
그러나도 새 목록 객체를 얻는다면 노드는 원본 객체에 링크 된 것처럼 보이므로 (참조로 원래 목록에서 복사 된 새 객체가 아닌) 새 객체의 객체를 수정하면 원래 객체의 객체도 수정됩니다 .
그래서 나는 그것을 성취 할 수 있는지 알고 싶습니다. (람다를 사용하면 모든 요소를 반복하는 "고전적"방식으로 할 수 있습니다.) 그리고 그 경우에는 어떻게 할 수 있는지 알고 싶습니다. 미리 감사드립니다.
'collect()'는 변경 가능한 축소를위한 것입니다. –
그래서 ... 대신 무엇을 사용해야합니까? – motagirl2
@JudeNiroshan - 당신이 어떤 주장을 하느냐에 달려 있습니다. 'collect (Collectors.toList())'를 예로들 수 있습니다. –