SeouliteLab

[Java/자바] Stream.collect()를 사용하여 Stream을 List로 변환하는 방법 본문

프로그래밍

[Java/자바] Stream.collect()를 사용하여 Stream을 List로 변환하는 방법

Seoulite Lab 2024. 3. 13. 14:20

Java의 Stream.collect() 메서드는 스트림 요소를 컬렉션으로 수집하는 데 사용됩니다. 이를 활용하여 스트림을 List로 변환하는 다양한 방법에 대해 살펴보겠습니다.

예제 1: Stream을 List로 변환하기

가장 기본적인 예제로, Stream.collect()를 사용하여 Stream을 List로 변환하는 방법을 살펴봅니다.

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class StreamToList {
    public static void main(String[] args) {
        Stream<String> stream = Stream.of("apple", "banana", "orange");
        List<String> list = stream.collect(Collectors.toList());
        System.out.println(list);
    }
}

예제 2: Stream 요소 필터링 후 List로 변환하기

스트림에서 특정 조건을 만족하는 요소만 필터링하여 List로 변환하는 예제입니다.

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class FilteredStreamToList {
    public static void main(String[] args) {
        Stream<String> stream = Stream.of("apple", "banana", "orange", "grape", "kiwi");
        List<String> filteredList = stream.filter(s -> s.startsWith("a")).collect(Collectors.toList());
        System.out.println(filteredList);
    }
}

예제 3: 객체 요소를 List로 변환하기

객체를 요소로 갖는 Stream을 List로 변환하는 예제입니다.

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

class Person {
    private String name;

    public Person(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

public class ObjectStreamToList {
    public static void main(String[] args) {
        Stream<Person> stream = Stream.of(new Person("Alice"), new Person("Bob"), new Person("Charlie"));
        List<Person> personList = stream.collect(Collectors.toList());
        System.out.println(personList);
    }
}

예제 4: 병렬 스트림을 List로 변환하기

병렬로 처리되는 스트림을 List로 변환하는 예제입니다.

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class ParallelStreamToList {
    public static void main(String[] args) {
        List<Integer> list = IntStream.rangeClosed(1, 1000).parallel().boxed().collect(Collectors.toList());
        System.out.println(list.size());
    }
}

예제 5: Stream 요소를 배열로 변환 후 List로 변환하기

Stream 요소를 배열로 변환한 후에 List로 변환하는 예제입니다.

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class StreamToArrayAndToList {
    public static void main(String[] args) {
        Stream<String> stream = Stream.of("apple", "banana", "orange");
        String[] array = stream.toArray(String[]::new);
        List<String> list = Arrays.asList(array);
        System.out.println(list);
    }
}

예제 6: Stream 요소를 배열로 변환 후 List로 변환하기 (기본형 타입)

기본형 타입의 Stream 요소를 배열로 변환한 후에 List로 변환하는 예제입니다.

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class PrimitiveStreamToArrayAndToList {
    public static void main(String[] args) {
        IntStream intStream = IntStream.rangeClosed(1, 10);
        int[] array = intStream.toArray();
        List<Integer> list = IntStream.of(array).boxed().collect(Collectors.toList());
        System.out.println(list);
    }
}