본문 바로가기

Java

Java - Collection(List, Set...) 가변(mutable) 객체 초기화 (Arrays.asList())

List.of나 Set.of 함수를 이용하면 List, Set을 간편히 생성 할 수 있다.

하지만 이렇게 생성한 객체는 불변객체(immutable) 여서 변경 작업이 불가능 하다. (add 작업 시 UnsupportedOperationException이 발생한다.)

List<String> list = List.of("a", "b", "c");
Set<String> set = Set.of("a", "b", "c");

list.add("d"); // java.lang.UnsupportedOperationException
set.add("d"); // java.lang.UnsupportedOperationException

 

따라서, 변경 가능한 Collection 객체를 만들고 싶을때는 Array.asList 함수를 이용해서 List.of와 비슷 한 형태로 작성 할 수 있다.

List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c"));
Set<String> set = new HashSet<>(Arrays.asList("a", "b", "c"));

list.add("d");
set.add("d");

System.out.println(list); // [a, b, c, d]
System.out.println(set);  // [a, b, c, d]

 

반응형