-
[JAVA] Stream을 만드는 방법들Java 2022. 11. 11. 15:55
1. Collection을 Stream으로 변환하는 방법
01 : List 👉 Stream
List<String> list = new ArrayList<>(); list.add("사과"); list.add("배"); list.add("바나나"); Stream<String> stringStream = list.stream(); stringStream.forEach(blahblah~~~~);
02 :List 👉 Stream2
List<Integer> list = Arrays.asList(1,2,3,4,5); Stream<String> stringStream = list.stream(); stringStream.forEach(blahblah~~~~);
2. 기본 배열을 Stream으로 변환하는 방법
String[] list = {"사과", "배", "바나나"}; Stream<String> stringStream = Arrays.stream(list); stringStream.forEach(System.out::println);
3. 객체 배열로부터 스트림 만들기
Stream<T> Stream.of(T... values) // 가변인자 넣기 Stream<T> Stream.of(T[]) // 배열을 바로 넣어버리기! Stream<T> Arrays.stream(T[]) // 기본제공되는 Arrays 클래스에 stream 메서드로 한번에! Stream<T> Arrays.stream(T[] array, int 시작인덱스, int 끝인덱스) // 배열의 일부만 넣기 // 예시👇 Stream<String> Arrays .stream(new String[]{'사과', '배', '오렌지', '포도', '바나나', '딸기'}, int 2, int 3) // 스트림배열에 '오렌지', '포도'만 넣음.
3. 기본형 배열로부터 스트림 만들기
IntStream intStream.of(int... values) // Stream이 아니라 IntStream을 쓴다. IntStream intStream.of(int[]) IntStream Arrays.stream(int[]) IntStream Arrays.stream(Int[] array, int 시작인덱스, int 끝인덱스)
4. 람다식을 이용해 iterate(), generate()로 스트림 만들기
iterate()는 이전요소를 seed로 해서 다음 요소를 계산한다.
Stream<Integer> evenStream = Stream.iterate(0, n->n+2); // 0, 2, 4, 6, 8 ... 무한스트림
generate()는 seed를 사용하지 않는다.
Stream<Integer> oneStream = Stream.generate(()->1); // 1, 1, 1, 1, 1 ... 무한스트림 Stream<Integer> randomStream = Stream.generate(Math::random); // ()-> Math.random()과 같다.
5. 파일을 소스로 하는 스트림 만들기
Stream<Path> Files.list(Path dir) // Path는 파일 또는 디렉토리 Stream<String> Files.lines(Path path) Stream<String> Files.lines(Path path, Charset cs) Stream<String> lines() // BufferedReader 클래스의 메서드 🔥자바의정석 15장에 나옴
6. 비어있는 스트림 만들기
Stream emptyStream = Stream.empty(); // empty()는 빈 스트림을 생성해서 반환한다. long count = emptyStream.count(); // count = 0
'Java' 카테고리의 다른 글
☑️[JAVA] int vs Intager / boolean vs Boolean (0) 2022.11.17 [JAVA] stream 기본집계 (0) 2022.11.11 [java]IntStream.of()를 이용한 평균값 구하기 (0) 2022.11.11 Pair.of()를 사용해보장 (0) 2022.11.11 자바 스트림(stream)을 이용한 데이터 가공 (map, filter, sorted / collect/foreach) (0) 2022.11.11