List<String> request = List.of("hello", "world", "spring");
request.stream()
.map(String::toUpperCase)
.collect(Collectors.toList());
문자열 리스트를 대문자로 변경하는 간단한 코드입니다.
보통 자바8을 사용하면 stream을 사용해서 리스트를 반환할 때 Collectors.toList()
를 사용합니다.
그런데 자바 16 이상을 사용한다면 대신 사용할 수 있는 메서드가 존재합니다.
바로 toList()
입니다.
List<String> request = List.of("hello", "world", "spring");
request.stream()
.map(String::toUpperCase)
.toList();
코드가 훨씬 간단하죠? 하지만 toList()
는 사용시 주의할 점이 하나 존재합니다.
바로 toList()
메서드는 불변 리스트를 반환한다는 것입니다.
이해를 돕기 위해서 예시 코드를 확인해보죠.
public List<String> listAddToList(List<String> request) {
List<String> uppercase = request.stream()
.map(String::toUpperCase)
.toList();
uppercase.add(0, "first");
return uppercase;
}
문자열 리스트를 받아서 제일 앞에 first 를 추가하는 로직이 추가되었습니다.
그냥 본다면 별 문제가 없어보이네요? 😒
진짜 문제가 없는지 바로 테스트 코드를 작성해봅시다.