2023-java-study / book-study

북 스터디 기록 레포지토리
0 stars 0 forks source link

[Item 17] 불변 객체가 Map의 키와 Set의 원소로 쓰기에 적합한 이유 #59

Closed gmelon closed 1 year ago

gmelon commented 1 year ago

p.109 의 내용인데, 값이 바뀌면 불변식이 허물어진다 라는 말이 잘 이해되지 않아서 어떻게 이해하셨는지 궁금해요!

ssstopeun commented 1 year ago

맵은 동일한 키에 대해 항상 동일한 값을 가지고, 집합은 중복되지 않는 값을 가지도록 보장하는 것이 맵과 집합의 불변성이라고 합니다. 만약 값이 바뀌게 되면 이러한 맵과 집합의 불변성이 깨지게되고 이말이 곧 불변식이 허물어진다는 것으로 이해했습니다.

예를들어 맵에서 key-value 쌍이 변경되어 이전의 value에 의존하는 경우가 있고 바뀐 value에 의존하는 경우가 있다면 둘에 예상값이 다르게 나와 문제가 발생할 것입니다. 하지만 불변 객체를 사용하게 되면 값이 변경될일이 없으니 즉, 불변식이 허물어질일이 없으니 해당 맵의 값을 완전 신뢰하여 사용할 수 있어 불변성을 유지한 작업이 중요할 것 같습니다!