더미데이터 리스트를 생성하다가, 이거는 변경할 일이 없지 않을까? 라는 생각이 들었다.
우리는 보통 리스트를 생성할 때, new ArrayLists<>() 를 사용하지만 더 간단하게는 Arrays.asList()를 사용한다.
불변 리스트는 어떻게 생성할까?
해당 리스트 생성방법은 List에 단일 개체만 생성할 때 사용한다.
리스트에 있는 개체는 수정이 불가능하다.
List<String> immutableList = Collections.singletonList("immutableElement");
여러 개체를 만들고 싶다면 unmodifiableList()를 사용하면 된다.
다만 이건 기존에 존재하는 가변 List를 불변으로 만드는 것이라고 생각하면 된다.
그래서 원본 리스트가 변경되면 이 리스트 또한 영향을 받는다.
List<String> modifiableList = new ArrayList<>();
modifiableList.add("Element1");
modifiableList.add("Element2");
modifiableList.add("Element3");
List<String> unmodifiableList = Collections.unmodifiableList(modifiableList);
Java9부터 가능한 불변리스트를 생성하는 메서드다.
나는 테스트할 때 가장 유용하게 많이 사용한다.
위의 리스트 생성방법과 다르게 List.of()는 처음부터 불변리스트로 생성하기 때문에, 생성이 된 시점부터는 변경자체가 불가능하다.
List<String> unmodifiableList = List.of("Element1", "Element2", "Element3");
여러 불변리스트를 생성하는 법을 정리하는 시간을 가지게 되었다.
보통은 대부분 테스트 작성할 때 사용하긴했는데, 글로 정리하니 머리에서도 정리가 잘된 느낌이다.
굿굿