[Java] 편리한 컬렉션 생성

Henson·2024년 11월 8일
post-thumbnail

편리한 컬렉션 생성

Java에서는 List.of(...) 메서드를 사용하면 컬렉션을 편리하게 생성할 수 있다. 하지만 List.of(...) 메서드로 생성한 컬렉션 객체는 가변 객체가 아니라 불변 객체로 생성된다.

List.of(...) 메서드로 생성한 컬렉션 객체는 불변 객체이므로 변경하게 되면, UnsupportedOperationException 예외가 발생한다.

List를 제외한 Set, Map 클래스에서도 List.of(...)와 같은 of() 클래스 메서드를 제공한다.

불변 컬렉션을 가변 컬렉션으로 전환

List<Integer> list = List.of(1, 2, 3);
List<Integer> mutableList = new ArraysList<>(list);

List.of(...) 메서드로 불변 컬렉션을 생성하였는데, 이 컬렉션을 가변 컬렉션으로 변경하고 싶다면 위의 코드와 같이 변경할 수 있다.

new ArrayList<>(불변 리스트)와 같이 원하는 컬렉션 프레임워크를 생성할 때, 인자로 불변 컬렉션 객체를 넣어주면 된다.

가변 컬렉션을 불변 컬렉션으로 전환

List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);

List<Integer> unmodifiableList = Collections.unmodifiableList(list);

가변 컬렉션을 불변 컬렉션으로 전환하고 싶다면 위의 코드와 같이 Collections.unmodifiableList() 메서드를 사용하면 된다. 각 컬렉션에 맞는 unmodifiableXxx() 가 존재한다.

profile
세계 최고의 개발자가 되고 말겠어.

0개의 댓글