※ Arrays.stream(array, fromIndex, endIndex)는 원하는 범위만 지정해 스트림을 만들 수 있다.
❗ 기본타입배열은 기본형스트림만 생성가능하다. 배열 타입에 따라 스트림 사용한다는 거 꼭 기억⭐
Random클래스의 ints() doubles(), longs() 이용해서 난수 스트림 만들기
💡 Random클래스의 ints(), doubles(), longs()는 난수. 무한으로 숫자를 생성할 수 있다.
만약 크기를 지정하지 않고 생성하면 이렇게 무한으로 숫자가 생성되는 것을 볼 수 있다.
난수 갯수 지정해서 만들기 intStream.limit( streamSize ) 또는 new Random.ints( streamSize );
IntStream을 만든 후 limit()을 지정하거나
처음에 newRandom().ints(숫자)를 적어 범위를 지정할 수 도 있다. 결과는 같다.
난수의 범위 지정하기 Random.ints/doubles/longs(boundFrom, boundEnd)
💡 위 메서드에 API를 보면 알 수 있듯이 ints(), doubles(), longs()는 인수 갯수에 따라서 많이 다르다. (보통 메서드들은 인수의 위치에 동일한 게 오는데, 이 메서드들은 좀 특이해서 눈여겨 볼만하다.)
() - 무한으로 난수생성. (StreamSize) - 지정된 숫자만큼 난수 생성. (boundFrom, boundEnd) - 지정된 범위만큼의 무한 난수 생성. (StreamSize, boundFrom, boundEnd) - 지정된 범위 내에서 원하는 만큼 난수 생성.
특정 범위의 정수인 난수 스트림 IntStream.range(int begin, int end);
※ IntStream.rangeClosed(int begin, int end); 는 닫히는 범위까지의 정수를 생성한다. (일반적인 않아서 잘 사용하진 않을 것 같아 따로 적는다.)
Stream.iterate()/generate()에서 람다식 이용해 무한 스트림 생성하기
두 메서드 모두 무한 스트림이기 때문에 잘라서 사용해야 한다.
iterate(T seed, 람다식)
seed - 초기값.
seed가 람다식의 인수로 사용된다.
generate(람다식)
seed가 없다.
람다식만 실행된다.
폴더로 스트림 만들기 Files.list(Path path)
지정된 폴더 경로의 파일들을 리스트 형태로 볼 수 있다.
파일의 내용 스트림으로 만들기 Files.lines(Path path)
파일 내용을 String으로 하나씩 읽어들일 수 있다. log나 대량의 데이터를 읽을 때 유용하게 사용할 수 있다.출력결과