● 첫번째 예제
package org.example;
import java.util.Arrays;
import java.util.List;
import java.util.stream.IntStream;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
int ar[] = {1, 2, 3, 4, 5};
IntStream stm1 = Arrays.stream(ar);
stm1.forEach(System.out::println); // 매서드 참조형 식
// stm1.forEach(s -> System.out.println(s)); 이거와 똑같다
// Arrays.steam(ar).forEach(value -> System.out.println(value))
// 똑같다.
System.out.println();
List<Integer> list = Arrays.asList(11,22,33,44,55);
// Stream<Integer> stm2 = list.stream();
// stm2.forEach(System.out::println);
list.stream().forEach(System.out::println);
}
}
● 두번째 예제
package org.example;
import java.util.Arrays;
import java.util.stream.IntStream;
import java.util.stream.Stream;
public class Main2 {
public static void main(String[] args) {
int ar[] = {1,2,3,4,5};
IntStream stm1 = Arrays.stream(ar);
IntStream stm2 = stm1.filter(value -> value%2 ==1);
int sum = stm2.sum();
System.out.println(sum);
System.out.println(Arrays.stream(ar).filter(value -> value%2 ==1).sum());
sum = Stream.of(1,2,3,4,5)
.filter(integer -> integer%2 ==1)
.reduce(0,(integer, integer2) -> integer += integer2);
// reduce 뒤에가 연산되지않으면 0으로 나타낸다.
System.out.println(sum);
}
}
줄여서 쓸 수 있다.(매서드 체이닝 기법)
● 세번째 예제
package org.example;
import java.util.Arrays;
import java.util.stream.Stream;
public class Main3 {
public static void main(String[] args) {
String str[] = {"홍길동","김길동","박길동"};
Stream<String> stream = Arrays.stream(str);
Arrays.stream(str).forEach(s -> System.out.println(s)); // 제네릭 타입이 스트링인게 나온다
System.out.println();
Arrays.stream(str).forEach(System.out::println); // 타입이 똑같으면 이 매서드 기법을 쓸 수 있다.
System.out.println();
for (String temp : str){
System.out.println(temp);
}
}
}
'java' 카테고리의 다른 글
스트림 2 (0) | 2024.02.15 |
---|---|
필터링 과 맵핑 (0) | 2024.02.15 |
미리 정의되어 있는 함수형 인터페이스 (1) | 2024.02.13 |
람다와 함수형 인터페이스 (1) | 2024.02.08 |
람다의 방식 (0) | 2024.02.07 |