
import java.util.*;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;
import java.util.stream.Stream;
class Java {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1,2,3,4,5);
Stream<Integer> intStream = list.stream(); // list를 Stream으로 변환
intStream.forEach(System.out::print); // forEach() 최종연산
// stream은 1회용. stream에 대해 최종연산을 수행하면 stream이 닫힌다.
intStream = list.stream(); // list로부터 stream을 생성
intStream.forEach(System.out::print);
}
}
객체 배열로부터 스트림 생성하기

기본형 배열로부터 스트림 생성하기



class Java {
public static void main(String[] args) {
// IntStream intStream = new Random().ints();
IntStream intStream = new Random().ints(5,10);
intStream
.limit(10) // 10개 자르기
.forEach(System.out::println);
}
}

람다식을 소스로 하는 스트림 생성하기

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

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

seed : 초기값
import java.util.stream.Stream;
class Java {
public static void main(String[] args) {
// iterate(T seed, UnaryOperator f) 단항 연산자. 하나를 넣으면 하나가 나온다.
Stream<Integer> intStream = Stream.iterate(1, n -> n + 2);
intStream
.limit(10)
.forEach(System.out::println);
// generate(Supplier s) : 주기만 하는것 입력x, 출력 o
Stream<Integer> oneStream = Stream.generate(() -> 1);
oneStream
.limit(10)
.forEach(System.out::println);
}
}
파일을 소스로 하는 스트림 생성하기

비어있는 스트림 생성하기
