개발공부/JAVA

[JAVA] 수정할 수 없는 컬렉션

jnnjnn 2024. 3. 21. 17:15

수정할 수 없는 unmodifiable 컬렉션이란 요소를 추가, 삭제할 수 없는 컬렉션을 말한다.

umodifiable 컬렉션을 만드는 방법은 세 가지가 있다.

 

1. List.of() 이용

List<E> immutableList = List.of(E ... elements);
Set<E> immutableSet = Set.of(E ... elements);
Map<K,V> immutableMap = Map.of( K K1, V v1, K k2, V v2, ...) // 반드시 짝수여야 함

 

2. copyOf 으로 기존 컬렉션 복사

List<E> immutableList = List.coptOf(Collection<E> coll);
Set<E> immutableSet = Set.(Collection<E> coll);
Map<K,V> immutableMap = Map.(Map<K,V> map); // Collection 인터페이스를 상속받지 않음

 

3. 배열로 List 컬렉션 만들기

String[] arr = { "A", "B", "C" };
List<String> immutableList = Arrays.asList(arr);

 

Arrays.asList()로 List 컬렉션을 생성할 경우 위의 두 방법과는 다르게 배열의 길이만 수정 불가능하고 객체는 수정 가능하다.

 

또, int를 Integer로 자동박싱하는 과정은 개별 요소만 가능하기 때문에

int[]는 List list = Arrays.asList(int[])로 변환해 줄 수 없다.

 

만약 Arrays.asList()로 int 배열을 변환하고 싶다면 처음부터 Integer[] 형태로 선언하는 방법이 있다.