•
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
복사

