-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
Iterator<User> 대신에 Collections.unmodifiableList(users)를 사용해도 되나요?
23.10.12 12:36 작성 조회수 203
0
[미니프로젝트] 회원관리 프로그램 강의 중에서 List<User> 객체가 외부에 의해서 값이 변경되는 것을 막기 위해 read only인 Iterator를 사용하셨는데요. 구글에서 검색해보니 다른 방법도 있는 것 같아요. Collections.unmodifiableList(List list) 를 사용하면 immutable (read-only)로 List를 return 할 수 있다고 하네요.
답변을 작성해보세요.
1
부부 개발단 토토(김성박)
지식공유자2023.10.13
User객체가 변할까봐 Iterator를 사용하는게 아닙니다. List등에 담기는 자료의 수를 몰라도 모든 데이터를 꺼낼 수 있으니 사용하는 것입니다.
Joseph
질문자2023.10.14
63 강의 시간 1시간 쯤 전후(59:20 ~ 1:01:16)에서 public List<User> getUsers() 메서드를 public Iterator<User> getUsers() 메서드로 리턴 타입을 변경하실때, List<User>를 리턴하면 외부에서 이 리스트 내용을 변경하거나 삭제할 수 있기 때문에 이것을 방지하기 위해 읽기전용인 Iterator<User> 타입으로 외부에 리턴하는게 좋다고 설명하셔서요.
부부 개발단 토토(김성박)
지식공유자2023.10.23
리스트의 내용을 외부에서 수정 가능하다는 의미였습니다.
리스트를 조작하는 건 그 리스트를 다루는 클래스에서만 해야하기 때문입니다.
답변 1