랩터
[Java] 스트림 - 스트림의 생성 본문
스트림으로 데이터를 처리하기 위해서는 가장 먼저 스트림을 생성해야 합니다.
많이 쓰이는 배열,컬렉션,임의의 수로 스트림을 생성하는법을 알아보겠습니다.
배열 스트림 생성
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까지의 숫자가 출력됩니다.
'공부 > JAVA' 카테고리의 다른 글
[Java] 스트림 - 스트림의 최종 연산 (0) | 2024.07.08 |
---|---|
[Java] 스트림 - 스트림의 중간 연산 (0) | 2024.07.08 |
[Java] 스트림 - 핵심 개념과 특징 (0) | 2024.07.08 |
[Java] 람다 (1) | 2024.07.05 |
[Java] 컬렉션 프레임워크 (Collection Framework) (0) | 2024.07.04 |