Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

랩터

[Java] 스트림 - 스트림의 생성 본문

공부/JAVA

[Java] 스트림 - 스트림의 생성

raptorhs 2024. 7. 8. 11:29

스트림으로 데이터를 처리하기 위해서는 가장 먼저 스트림을 생성해야 합니다. 
많이 쓰이는 배열,컬렉션,임의의 수로 스트림을 생성하는법을 알아보겠습니다.

 

배열 스트림 생성

 

package Stream;

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

public class StreamCreator {
    public static void main(String[] args) {
        //문자열 배열 선언 및 할당
        String[] arr = new String[]{"김코딩", "이자바", "박해커"};

        //문자열 스트림 생성 by Arrays.stream()
//        Stream<String> stream = Arrays.stream(arr);

        //문자열 스트림 생성 by Stream.of()
        Stream<String> stream = Stream.of(arr);

        //출력
        stream.forEach(System.out::println);
    }
}

 

package Stream;

import java.util.Arrays;
import java.util.stream.IntStream;
import java.util.stream.Stream;

public class StreamCreator {
    public static void main(String[] args) {

        //int형 배열로 스트림 생성
        int[] intArr = {1, 2, 3, 4, 5, 6, 7};
        IntStream intStream = Arrays.stream(intArr);

        //숫자와 관련된 경우 intStream을 사용하는 것을 권장
//        System.out.println("sum=" + intStream.sum());
        System.out.println("average = " + intStream.average());
    }
}

 

컬렉션 스트림 생성

 

package Stream;

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

public class StreamCreator {
    public static void main(String[] args) {
        
        //요소들의 리스트
        List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7);
        Stream<Integer> stream = list.stream();
        
        stream.forEach(System.out::print);
    }
}

 

임의의 수 스트림 생성

package Stream;

import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.stream.IntStream;
import java.util.stream.Stream;

public class StreamCreator {
    public static void main(String[] args) {
        // 난수 생성
        IntStream ints = new Random().ints();
        ints.forEach(System.out::println);
    }
}

 

출력하면 출력값이 무한대로 생성됩니다. 스트림의 크기가 정해져 있지 않기 때문입니다.

뒤에.limit(5)이렇게 해야 사이즈를 제한할 수 있습니다.

 

package Stream;

import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.stream.IntStream;
import java.util.stream.Stream;

public class StreamCreator {
    public static void main(String[] args) {
        //특정 범위의 정수
        IntStream intStream = IntStream.rangeClosed(1,10);
        intStream.forEach(System.out::println);
    }
}

 

 

rangeClosed()와 range()의 차이는 두 번째로 전달되는 매개 변수가 범위 안에 포함되는지 여부에 따라 구분될 수 있습니다. rangeClosed()는 끝 번호가 포함되어 위의 코드 예제처럼 1~10까지의 숫자가 출력되는 반면, range()의 경우에는 끝번호가 포함되지 않아 1~9까지의 숫자가 출력됩니다.