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]
반응형