본문 바로가기

- Java

컬렉션 팩토리

반응형

리스트 팩토리

- 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

반응형

'- Java' 카테고리의 다른 글

병렬 데이터 처리  (0) 2020.11.08
Stream 기능  (0) 2020.10.24
Stream 기본  (0) 2020.10.20
lambda  (0) 2020.10.18
final / static final  (0) 2020.07.21