스트림 생성

✒️ 2025-05-15 10:50 내용 수정


참고 자료 : TCPSchool 스트림의 생성


1. 컬렉션

Stream<T> 스트림이름 = 컬렉션인스턴스.stream();

ArrayList<Integer> list = new ArrayList<Integer>();
Stream<Integer> stream = list.stream();

2. 배열

Stream<T> 스트림이름 = Array.stream(배열인스턴스);
IntStream 스트림이름 = Array.stream(배열인스턴스);

String[] arr = new String[];
Stream<String> stream = Arrays.stream(arr);

Integer[] intArr = new Integer[];
IntStream intStream = Arrays.stream(intArr);

3. 가변 매개변수

Stream<T> 스트림이름 = Stream.of(가변매개변수);

Stream<Double> stream = Stream.of(4.2, 8.3, 1.9, 5.2);

4. 지정된 범위의 연속된 정수

IntStream 스트림이름 = IntStream.range(int 시작, int 끝);
IntStream 스트림이름 = IntStream.rangeClosed((int 시작, int 끝);

IntStream stream1 = IntStream.range(1, 4); // 1, 2, 3
IntStream stream2 = IntStream.rangeClose(1, 4); // 1, 2, 3, 4

5. 특정 타입의 난수들

IntStream 스트림이름 = new Random().ints(long 크기);

IntStream stream = new Random().ints(4); // 크기가 4인 스트림 생성

6. 람다 표현식

Stream<T> 스트림이름 = Stream.iterate(시드, 람다식);
Stream<T> 스트림이름 = Stream.generate(람다식);

// 두 경우 모두 무한 스트림을 생성하기 때문에 limit()으로 크기를 제한해야 함
Stream<Integer> stream1 = Stream.iterate(2, n -> n+2).limit(3); // 2, 4, 6
Stream<Integer> st - Stream.iterate(0, i -> i < 10, i -> i+1); // 초기값, 조건, 규칙
Stream<String> stream2 = Stream.generate(() -> "gen").limit(4); // gen, gen, gen

7. 파일

Stream<T> 스트림이름 = Files.lines(Path path);
BufferedReader 스트림이름 = Files.line(Path path);

Stream<String> stream = Files.lines(Path path);

8. 빈 스트림

Stream<T> 스트림이름 = Stream.empty();

Stream<Object> stream = Stream.empty();

9. 직접 추가해서 만들기

Stream<T> 스트림이름 = Stream.<T>builder().add().add()...build();

Stream<String> builderStream = Stream.<String>builder().add("a").add("b").build();

10. 문자열 스트림

IntStream 스트림이름 = "문자열내용".chars();

IntStream stream = "Stream".chars();

11. 병렬 스트림

Stream<T> 스트림이름 = 인스턴스이름.parallelStream();

Connected Pages
On this page
  • 1. 컬렉션
  • 2. 배열
  • 3. 가변 매개변수
  • 4. 지정된 범위의 연속된 정수
  • 5. 특정 타입의 난수들
  • 6. 람다 표현식
  • 7. 파일
  • 8. 빈 스트림
  • 9. 직접 추가해서 만들기
  • 10. 문자열 스트림
  • 11. 병렬 스트림
  • Stream 스트림이름 = 인스턴스이름.parallelStream();