Backend
home
📝

stream 예제 코드 12

생성일
2025/01/22 10:39
태그
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
복사