[java] 스트림 API의 활용 예시

Java 8 이후에 도입된 스트림 API는 데이터 처리를 더 효율적으로, 간결하게 할 수 있는 기능을 제공합니다. 스트림 API를 사용하여 컬렉션 내의 요소를 필터링, 변환, 정렬하는 등의 작업을 수행할 수 있습니다. 이번 포스트에서는 스트림 API의 몇 가지 활용 예시를 살펴보겠습니다.

1. 필터링

스트림 API의 가장 기본적인 기능 중 하나는 요소를 필터링하는 것입니다. 예를 들어, 정수로 이루어진 리스트에서 짝수만 필터링하여 새로운 리스트를 생성하는 작업을 해보겠습니다.

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

List<Integer> evenNumbers = numbers.stream()
                                   .filter(n -> n % 2 == 0)
                                   .collect(Collectors.toList());

System.out.println(evenNumbers);  // 출력: [2, 4, 6, 8, 10]

위의 코드에서 numbers 리스트를 스트림으로 변환한 후, filter() 메서드를 호출하여 조건에 맞는 요소만 걸러냅니다. 마지막에 collect() 메서드를 호출하여 새로운 리스트로 변환합니다.

2. 변환

스트림 API를 사용하면 요소들을 다른 형태로 변환할 수도 있습니다. 예를 들어, 문자열 리스트의 모든 요소를 대문자로 변환하는 작업을 해보겠습니다.

List<String> strings = Arrays.asList("apple", "banana", "orange");

List<String> uppercaseStrings = strings.stream()
                                       .map(String::toUpperCase)
                                       .collect(Collectors.toList());

System.out.println(uppercaseStrings);  // 출력: ["APPLE", "BANANA", "ORANGE"]

map() 메서드를 사용하여 모든 요소를 대문자로 변환하고, 최종적으로 collect() 메서드를 호출하여 새로운 리스트로 변환합니다.

3. 정렬

스트림 API를 사용하면 요소들을 정렬할 수도 있습니다. 예를 들어, 문자열 리스트를 알파벳순으로 정렬하는 작업을 해보겠습니다.

List<String> strings = Arrays.asList("apple", "banana", "orange");

List<String> sortedStrings = strings.stream()
                                   .sorted()
                                   .collect(Collectors.toList());

System.out.println(sortedStrings);  // 출력: ["apple", "banana", "orange"]

sorted() 메서드를 사용하여 요소들을 정렬하고, collect() 메서드를 호출하여 정렬된 요소들로 이루어진 새로운 리스트를 생성합니다.

결론

스트림 API를 사용하면 컬렉션 내의 요소를 간결하게 처리할 수 있습니다. 필터링, 변환, 정렬 등의 다양한 작업에 대해 스트림 API를 활용해 보세요. 추가적인 정보는 Java 공식 문서를 참고하시기 바랍니다.

참고: Java 8 Stream API 문서