에서 자바 1.6 컬렉션 프레임 워크 문서 :
어떠한 수정 작업 (예를 지원하지 않는 컬렉션
add
,remove
및clear
)라고도 불가능한 . [...] Collection 객체의 변경 사항이 표시되지 않음을 추가로 보장하는 컬렉션을 불변 이라고합니다 .
두 번째 기준은 저를 약간 혼란스럽게합니다. 첫 번째 컬렉션을 수정할 수없고 원래 컬렉션 참조가 삭제되었다고 가정 할 때 두 번째 줄에서 참조되는 변경 사항은 무엇입니까? 컬렉션에 포함 된 요소의 변경, 즉 요소의 상태를 의미합니까?
두 번째 질문 :
컬렉션을 변경할 수없는 경우 지정된 추가 보증을 제공하는 방법은 무엇입니까? 컬렉션의 요소 상태가 스레드에 의해 업데이트되는 경우 해당 상태의 업데이트가 변경 불가능한 컬렉션을 보유하는 스레드에서 표시되지 않는 것으로 충분합니까?
컬렉션이 변경 불가능하도록하려면 지정된 추가 보장을 어떻게 제공합니까?
newCol = oldCol.add("element")
는 1 개 이상의 요소가있는 이전 컬렉션의 복사 본인 새 컬렉션을 생성하고에 대한 모든 참조oldCol
는 여전히 변경되지 않은 동일한 이전 컬렉션을 가리 킵니다.