반응형
리스트 팩토리
- List 생성
- 고정 크기의 리스트로 변경은 되지만 추가, 삭제 불가능
- 리스트 크기를 변경하려고 하면 UnsupportedOperationException 발생
List.of 팩토리 메소드를 이용하여 생성 가능
- 크기 가변 불가능
- 컬렉션이 의도치 않게 변경되는 것을 방지
- but, 요소 자체가 변하는 것은 막을 수 없음
- null요소 유입 방지
- 오버로딩 vs 가변 인수
- List나 Set, Map 인터페이스를 살펴보면 List.of와 같은 다양한 오버로드 버전이 존재
→ 가변 인수는 추가 배열을 할당해서 리스트로 감싸기 때문에 배열을 할당하고 초기화하며 가비지 컬렉션을 하는 비용이 발생
→ 고정된 숫자의 요소(max=10)로 비용 제거 가능
집합 팩토리
- Set 생성
- 크기가 가변인 집합은 만들 수 있지만 불필요한 객체 할당이 필요
- Map은 작은 맵을 만들 수 없음
→ 자바9부터는 멋있게 만들 수 있도록 팩토리 메서드 제공
- 중복된 요소로 집합을 생성하려고 하면 IllegalArgumentException 발생
- 집합은 오직 고유요소
맵 팩토리
불변의 리스트, 집합, 맵
- List.of, Set.of, Map.of/Map.ofEntries
→ 요소를 변경, 추가, 삭제하려고하면 UnsupportedOperationException
반응형