Java 스트림 만들기
by 볼빵빵오춘기스트림 만들기 - 컬렉션
Collection 인터페이스의 stream()으로 컬렉션을 스트림으로 변환한다.
스트림 만들기 - 배열
- 객체 배열로부터 스트림 생성하기
- 기본형 배열로부터 스트림 생성하기 (만들어진 배열이 Stream이다.)
스트림 만들기 - 임의의 수
난수를 요소로 갖는 스트림 생성하기
더보기
*Random클래스 : 지정된 범위의 난수를 요소로 갖는 스트림을 생성하는 메서드
스트림 만들기 - 특정 범위의 정수
특정 범위의 정수를 요소로 갖는 스트림 생성하기
스트림 만들기 - 람다식 iterate(), generate()
- 람다식을 소스로 하는 스트림 생성하기
더보기
⇒ 무한 스트림 따라서 limit같은걸로 잘라 줘야함
- iterate()는 이전 요소를 seed로 해서 다음 요소를 계산한다.
- generate()는 seed를 사용하지 않는다.
스트림 만들기 - 파일과 빈 스트림
- 파일을 소스로 하는 스트림 생성하기
- 비어있는 스트림 생성하기
예제 코드
예제 코드 - 컬렉션
더보기
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
public class Try {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1,2,3,4,5);
Stream<Integer> intStream = list.stream();
intStream.forEach(System.out::print);
}
}
⇒ 정상작동 확인 후 코드 아래에 ‘intStream.forEach(System.out::print);’ 한 번 더 추가하면 에러난다.
⇒ why? stream은 1회용이기 때문이다!
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
public class Try {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1,2,3,4,5);
Stream<Integer> intStream = list.stream();
intStream.forEach(System.out::print);
intStream.forEach(System.out::print);
}
}
⇒ 스트림 closed. 다시 한 번 추가해서 사용하기 위해서는 ‘Stream<Integer> intStream = list.stream();’를 한 번 더 하고 돌리면 된다.
예제 코드 - 배열
더보기
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
public class Try {
public static void main(String[] args) {
Stream<String> strStream = Stream.of("a","b","c");
strStream.forEach(System.out::print);
System.out.println();
Stream<String> strStream2 = Stream.of(new String[] {"a","b","c"});
strStream2.forEach(System.out::print);
System.out.println();
String[] strArr = new String[] {"a","b","c"};
Stream<String> strStream3 = Stream.of(strArr);
strStream3.forEach(System.out::print);
System.out.println();
Stream<String> strStream4 = Arrays.stream(strArr);
strStream4.forEach(System.out::print);
System.out.println();
}
}
예제 코드 - 임의의 수
더보기
import java.util.Random;
import java.util.stream.IntStream;
public class Try {
public static void main(String[] args) {
IntStream intStream = new Random().ints(); // 무한스트림
intStream.limit(5).forEach(System.out::println);
}
}
⇒ 난수 5개가 임의로 나온다.
if. limit()이 없다면 무한스트림이라 끝이 없이 숫자가 나온다.
why? 무한스트림이기때문에 몇 개 나올지 지정해주기!
limit을 쓰지 않을려면 ints()함수에 숫자 넣어주기 ints(5) 이런식으로
범위를 지정해주고 싶다면 ints(5,10)이런식으로 넣어주면 5≤ x <10 숫자가 나온다.
밑에 코드 돌려보면 느낌이 옴
IntStream intStream = new Random().ints(5); // 무한스트림
intStream.forEach(System.out::println);
IntStream intStream = new Random().ints(5,10); // 무한스트림
intStream.limit(5).forEach(System.out::println);
IntStream intStream = new Random().ints(7,5,10); // 무한스트림
intStream.forEach(System.out::println);
예제 코드 - 람다식 iterate(), generate()
더보기
import java.util.stream.Stream;
public class Try {
public static void main(String[] args) {
// iterate(T seed, UnaryOperator f) 단항 연산자
Stream<Integer> intStream = Stream.iterate(0, n-> n+2);
intStream.limit(10).forEach(System.out::println);
// generate(Supplier s) : 주기만 하는 것 입력x, 출력O
Stream<Integer> oneStream = Stream.generate(()->1);
oneStream.forEach(System.out::println);
}
}
'👩🏻💻 About 프로그래밍 > Java' 카테고리의 다른 글
Java 스트림의 중간연산 (0) | 2023.12.11 |
---|---|
Java 스트림의 연산 (0) | 2023.12.11 |
Java 스트림(Stream), 스트림의 특징 (0) | 2023.12.11 |
Java 메서드 참조, 생성자의 메서드 참조 (0) | 2023.12.11 |
Java Predicate 결합. CF와 함수형 인터페이스 (1) | 2023.12.11 |
블로그의 정보
Hello 춘기's world
볼빵빵오춘기