•
stream을 활용하여 조건에 부합한 총합 구하기
package com.stream;
import java.util.Arrays;
public class LoopExample {
public static void main(String[] args) {
int[] intArr = {1, 2, 3, 4, 5};
int total = Arrays
.stream(intArr)
.filter(i -> i % 2 == 0)
.peek(System.out::println)
.sum();
System.out.println("총합 : " + total);
Arrays
.stream(intArr)
.filter(i -> i % 2 == 1)
.forEach(System.out::println);
}
}
Java
복사
•
stream 활용하여 짝수, 홀수 판별 및 배수 판별
package com.stream2;
import java.util.Arrays;
import java.util.stream.IntStream;
public class MatchExample {
public static void main(String[] args) {
int[] intArr1 = { 2, 4, 6, 8 };
int[] intArr2 = { 2, 3, 4, 6, 8 };
// 모두 2의 배수이면 true를 반환
boolean allEvenResult1 = Arrays.stream(intArr1).allMatch(i -> i % 2 == 0);
boolean allEvenResult2 = IntStream.of(intArr2).allMatch(i -> i % 2 == 0);
System.out.println("1번 배열이 모두 짝수인가? " + allEvenResult1);
System.out.println("2번 배열이 모두 짝수인가? " + allEvenResult2);
// 하나라도 홀수가 있으면 true를 반환
boolean anyOddResult1 = Arrays.stream(intArr1).anyMatch(i -> i % 2 == 1);
boolean anyOddResult2 = IntStream.of(intArr2).anyMatch(i -> i % 2 == 1);
System.out.println("1번 배열 중 하나라도 홀수가 있는가? " + anyOddResult1);
System.out.println("2번 배열 중 하나라도 홀수가 있는가? " + anyOddResult2);
// 10의 배수가 없으면 true를 반환
boolean notInTenTimes1 = Arrays.stream(intArr1).noneMatch(i -> i % 10 == 1);
boolean notInTenTimes2 = IntStream.of(intArr2).noneMatch(i -> i % 10 == 1);
System.out.println("1번 배열 중에는 10의 배수가 없는가?" + notInTenTimes1);
System.out.println("2번 배열 중에는 10의 배수가 없는가?" + notInTenTimes2);
}
}
Java
복사
•
요소의 곱
package com.stream3;
import java.util.Arrays;
public class ReductionExample3 {
public static void main(String[] args) {
int[] intArr = { 1, 2, 3, 4 };
int result1 = Arrays.stream(intArr).reduce((a, b) -> a * b).getAsInt();
System.out.println("요소의 곱: " + result1);
System.out.println();
int result2 = Arrays.stream(intArr).reduce(100, (a, b) -> a * b);
System.out.println("요소의 곱: " + result2);
System.out.println();
int result3 = Arrays.stream(intArr).reduce(100, (a, b) -> {
System.out.println(a); // 누적값
System.out.println(b); // 각 요소
return a * b;
});
}
}
Java
복사