inflearn logo
강의

講義

知識共有

楽しいJava

会員管理プログラムの作成

Iterator<User> 대신에 Collections.unmodifiableList(users)를 사용해도 되나요?

373

Joseph

投稿した質問数 1

0

  1. [미니프로젝트] 회원관리 프로그램 강의 중에서 List<User> 객체가 외부에 의해서 값이 변경되는 것을 막기 위해 read only인 Iterator를 사용하셨는데요. 구글에서 검색해보니 다른 방법도 있는 것 같아요. Collections.unmodifiableList(List list) 를 사용하면 immutable (read-only)로 List를 return 할 수 있다고 하네요.

     

    https://softwareengineering.stackexchange.com/questions/316234/how-to-design-an-iterable-but-immutable-read-only-collection

     

java

回答 1

1

enjoyjava

User객체가 변할까봐 Iterator를 사용하는게 아닙니다. List등에 담기는 자료의 수를 몰라도 모든 데이터를 꺼낼 수 있으니 사용하는 것입니다.

0

Joseph

63 강의 시간 1시간 쯤 전후(59:20 ~ 1:01:16)에서 public List<User> getUsers() 메서드를 public Iterator<User> getUsers() 메서드로 리턴 타입을 변경하실때, List<User>를 리턴하면 외부에서 이 리스트 내용을 변경하거나 삭제할 수 있기 때문에 이것을 방지하기 위해 읽기전용인 Iterator<User> 타입으로 외부에 리턴하는게 좋다고 설명하셔서요.

0

enjoyjava

리스트의 내용을 외부에서 수정 가능하다는 의미였습니다.

 

리스트를 조작하는 건 그 리스트를 다루는 클래스에서만 해야하기 때문입니다.

패키지 구분에 대해 궁금한게 있습니다

0

11

1

안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.

0

19

1

갑자기 채점 사이트가 바뀌었어요

0

19

1

문제 리스트 페이지

0

22

1

채팅프로그램 한글 깨짐

0

497

2

강의 교안

0

771

2

split 사용에 있어서의 의도치 않은 값 할당이 되고 있네요

0

409

1

추상화와 추상클래스는 다른 말인가요? 그 용도가 궁금합니다

1

509

1

메서드와 프로퍼티의 차이가 뭔가요?

1

380

1

static이 클라스에 부여 되었을 때

1

308

1

++,--관련 질문드립니다.

0

431

1

Socket의 InputStream

0

586

2

API 문서가 만들어지지 않습니다

0

577

2

66. 채팅 프로그램 만들기 1/2

0

743

2

65. 네트워크프로그래밍1

0

394

1

this생성자 관련 질문 있습니다!

0

595

2

54. 배열 2편 강의 중

0

395

1

51. 배열 1편 강의 중..

0

303

1

50. 팩토리 메소드 패턴 강의 중

0

292

1

Java Comparator 인터페이스 - 람다 표현

0

676

2

자바 공부법

1

1678

2

class object insatnce

1

693

1

43. 생성자 -super가 기본 생성자가 아닐 때

1

607

1

while문의 continue 예제3번에 관한 질문

0

423

2