ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] Stream을 만드는 방법들
    Java 2022. 11. 11. 15:55

    1. Collection을 Stream으로 변환하는 방법

    01 : List 👉 Stream

    List<String> list = new ArrayList<>();
    list.add("사과");
    list.add("배");
    list.add("바나나");
    
    Stream<String> stringStream = list.stream();
    stringStream.forEach(blahblah~~~~);

     

    02 :List 👉 Stream2

    List<Integer> list = Arrays.asList(1,2,3,4,5);
    Stream<String> stringStream = list.stream();
    stringStream.forEach(blahblah~~~~);

    2. 기본 배열을 Stream으로 변환하는 방법

    String[] list = {"사과", "배", "바나나"};
    Stream<String> stringStream = Arrays.stream(list);
    stringStream.forEach(System.out::println);

    3. 객체 배열로부터 스트림 만들기

    Stream<T> Stream.of(T... values) // 가변인자 넣기
    Stream<T> Stream.of(T[]) // 배열을 바로 넣어버리기!
    Stream<T> Arrays.stream(T[]) // 기본제공되는 Arrays 클래스에 stream 메서드로 한번에!
    
    Stream<T> Arrays.stream(T[] array, int 시작인덱스, int 끝인덱스) // 배열의 일부만 넣기
    
    // 예시👇 
    Stream<String> Arrays
    .stream(new String[]{'사과', '배', '오렌지', '포도', '바나나', '딸기'}, int 2, int 3) 
        // 스트림배열에 '오렌지', '포도'만 넣음.

    3. 기본형 배열로부터 스트림 만들기

    IntStream intStream.of(int... values) // Stream이 아니라 IntStream을 쓴다.
    IntStream intStream.of(int[])
    IntStream Arrays.stream(int[])
    IntStream Arrays.stream(Int[] array, int 시작인덱스, int 끝인덱스)

     


    4. 람다식을 이용해 iterate(), generate()로 스트림 만들기

    iterate()는 이전요소를 seed로 해서 다음 요소를 계산한다.

    Stream<Integer> evenStream = Stream.iterate(0, n->n+2); // 0, 2, 4, 6, 8 ... 무한스트림

     

    generate()는 seed를 사용하지 않는다.

    Stream<Integer> oneStream = Stream.generate(()->1); // 1, 1, 1, 1, 1 ... 무한스트림
    Stream<Integer> randomStream = Stream.generate(Math::random); // ()-> Math.random()과 같다.

    5. 파일을 소스로 하는 스트림 만들기

    Stream<Path> Files.list(Path dir) // Path는 파일 또는 디렉토리
    Stream<String> Files.lines(Path path)
    Stream<String> Files.lines(Path path, Charset cs)
    Stream<String> lines() // BufferedReader 클래스의 메서드 🔥자바의정석 15장에 나옴

    6. 비어있는 스트림 만들기

    Stream emptyStream = Stream.empty(); // empty()는 빈 스트림을 생성해서 반환한다.
    long count = emptyStream.count(); // count = 0
Designed by Tistory.