newList.addAll(oriList); 는 언뜻 deep copy 인 것처럼 보이지만 아니다.
커스텀 클래스인 경우에는 Clonable 을 implement 하기도 한다고 한다.
나는 주로 List<Map> 구조를 사용하기 때문에 그냥 아래와 같이 했다.
List<Map<String, Object>> newList = new ArrayList<>();
oriList.forEach(el -> {
newList.add(new LinkedHashMap<>(el)); // 이걸로 완전한 deep copy가 이루어 지는지는 아직 모르겠다.
});