[java] 람다 표현식을 사용하여 스트림을 어떻게 정렬할 수 있나요?
예를 들어, 문자열로 이루어진 스트림을 길이를 기준으로 오름차순으로 정렬하려면 다음과 같이 할 수 있습니다:
List<String> strings = Arrays.asList("apple", "orange", "banana", "pear");
List<String> sortedList = strings.stream()
.sorted((s1, s2) -> Integer.compare(s1.length(), s2.length()))
.collect(Collectors.toList());
System.out.println(sortedList);
위의 코드에서, sorted()
메서드에 람다 표현식을 사용하여 문자열을 길이를 기준으로 정렬하고 있습니다. 우선적으로 문자열의 길이를 비교하는 람다 표현식 ((s1, s2) -> Integer.compare(s1.length(), s2.length()))
을 정의하여 sorted()
메서드에 전달했습니다.
이제 스트림을 사용하여 요소를 원하는 방식으로 정렬할 수 있습니다.