Java/Stream
-
[Java] 스트림(Stream)의 최종 연산 - 요소의 수집 : collect()Java/Stream 2022. 7. 29. 16:20
스트림(Stream)의 최종 연산 - 요소의 수집 : collect() 1. collect() 인수로 전달되는 Collectors 객체에 구현된 방법대로 스트림의 요소를 수집합니다. 또한, Collectors 클래스에는 미리 정의된 다양한 방법이 클래스 메소드로 정의되어 있습니다. 이 외에도 사용자가 직접 Collector 인터페이스를 구현하여 자신만의 수집 방법을 정의할 수도 있습니다. 스트림 요소의 수집 용도별 사용할 수 있는 Collectors 메소드는 다음과 같습니다. 1_1) 스트림을 배열이나 컬렉션으로 변환 : toArray(), toCollection(), toList(), toSet(), toMap() 예제) 해당 스트림의 요소를 List 객체로 반환 public static void cr..
-
[Java] 스트림(Stream)의 최종 연산 - 요소의 연산 : sum(), average()Java/Stream 2022. 7. 25. 15:55
스트림(Stream)의 최종 연산 - 요소의 연산 : sum(), average() 1. sum() IntStream이나 DoubleStrem과 같은 기본 타입 스트림의 모든 요소에 합을 반환합니다. 예제) Int 타입 스트림의 합 public static void createStreamIntSum() { IntStream stream = IntStream.of(10, 20, 30, 40, 50); System.out.println(stream.sum()); } Console Output 예제) Double 타입 스트림의 합 public static void createStreamDoubleSum() { DoubleStream stream = DoubleStream.of(10.1, 20.2, 30.3, ..
-
[Java] 스트림(Stream)의 최종 연산 - 요소의 통계 : count(), max(), min()Java/Stream 2022. 7. 25. 15:52
스트림(Stream)의 최종 연산 - 요소의 통계 : count(), min(), max() 1. count() 해당 스트림의 요소의 총 개수를 long 타입의 값으로 반환합니다. 예제) 해당 스트림의 총 개수 public static void createStreamCount() { IntStream ints = IntStream.of(10, 20, 30, 40, 50); Long intsCount = ints.count(); System.out.println(intsCount); } Console Output 2. max() 해당 스트림의 요소 중에서 가장 큰 값을 가지는 요소를 참조하는 Optional 객체를 반환합니다. 예제) 해당 스트림에서 가장 큰 값을 반환 public static void c..
-
[Java] 스트림(Stream)의 최종 연산 - 요소의 검사 : anyMatch(), allMatch(), noneMatch()Java/Stream 2022. 7. 25. 15:50
스트림(Stream)의 최종 연산 - 요소의 검사 : anyMatch(), allMatch(), noneMatch() 1. anyMatch() 해당 스트림의 일부 요소가 특정 조건을 만족할 경우 true, 만족하지 않을 경우 false를 반환합니다. 예제) 해당 스트림에서 일부 요소가 문자열 'A'로 시작하는지 확인 public static void createStreamAnyMacth() { List strings = Arrays.asList("A1", "A2", "B1", "B2"); boolean isMatch = strings.stream().anyMatch(s -> s.startsWith("A")); System.out.println("anyMatch : " + isMatch); } Consol..
-
[Java] 스트림(Stream)의 최종 연산 - 요소의 검색 : findFirst(), findAny()Java/Stream 2022. 7. 25. 15:48
스트림(Stream)의 최종 연산 - 요소의 검색 : findFirst(), findAny() 1. findFirst() 해당 스트림에서 첫 번째 요소를 참조하는 Optional 객체를 반환합니다. 예제) 해당 스트림에서 첫 번째 요소를 반환 public static void createStreamFindFirst() { List strings = Arrays.asList("A1", "A2", "A3", "A4", "A5"); Optional stringFirst = strings.stream() .filter(s -> s.startsWith("A")) .findFirst(); stringFirst.ifPresent(System.out::println); } Console Output 2. findAny..
-
[Java] 스트림(Stream)의 최종 연산 - 요소의 소모 : reduce()Java/Stream 2022. 7. 25. 15:47
스트림(Stream)의 최종 연산 - 요소의 출력 : reduce() 1. reduce() 첫 번째와 두 번째 요소를 가지고 연산을 수행한 뒤, 그 결과와 세 번째 요소를 가지고 또 다시 연산을 수행합니다. 이와 같이 해당 스트림의 모든 요소를 연산하여 그 결과를 반환합니다. 예제) 해당 스트림의 전체 합 public static void createStreamReduceSum() { Stream numbers = Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); Optional result = numbers.reduce((subtotal, element) -> subtotal + element); result.ifPresent(System.out::println); } Cons..
-
[Java] 스트림(Stream)의 최종 연산 - 요소의 출력 : forEach()Java/Stream 2022. 7. 25. 15:46
스트림(Stream)의 최종 연산 - 요소의 출력 : forEach() 1. forEach() 반환 타입이 void로 보통 스트림의 모든 요소를 출력하는 용도로 많이 사용합니다. 예제) 해당 스트림에 전체 요소를 출력 public static void createStreamFor() { Stream stream = Stream.of("Python", "C", "Java", "Visual Basic", "PHP"); stream.forEach(System.out::println); } Console Output 예제) 2개의 리스트에서 중복된 요소만 출력 - 일반적인 중첩 for문 public static void createStreamNestedFor01() { List languages01 = Arra..
-
[Java] 스트림(Stream)의 중개 연산 - 연산 결과 확인 : peek()Java/Stream 2022. 7. 14. 17:14
스트림(Stream)의 중개 연산 - 연산 결과 확인 : peek() 1. peek() peek() 메소드는 결과 스트림으로부터 요소를 소모하여 추가로 명시된 동작을 수행합니다. 또한, 원본 스트림에서 요소로를 소모하지 않으므로, 주로 연산과 연산 사이에 결과를 확인할 때 사용합니다. 예제) peek() 메소드를 최종 연산으로 사용하면 동작하지 않음 public static void createStreamPeekNotWorking() { Stream stream = Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); stream.filter(s -> s % 3 == 0) .peek(s -> System.out.println("원본 스트림 : " + s)); } 예제) peek() ..