Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발자 도전기

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

개발공부/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[] 형태로 선언하는 방법이 있다.

'개발공부 > JAVA' 카테고리의 다른 글

[JAVA] 멀티 스레드  (0) 2024.03.26
[JAVA] 예외(Exception)  (0) 2024.03.25
[JAVA] Stream API  (0) 2024.03.21
[JAVA] Stack, Queue  (0) 2024.03.20
[JAVA] Map 컬렉션  (0) 2024.03.20