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 c..
-
[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 cre..
-
[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);}Conso..
-
[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 ..
-
[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);}Con..
-
[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 = Array..
-
[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));} 예제) p..
-
[Java] 스트림(Stream)의 중개 연산 - 정렬 : sorted()Java/Stream(스트림) 2022. 7. 14. 16:38
목차 스트림(Stream)의 중개 연산 - 정렬 : sorted()1. sorted()sorted() 메소드는 해당 스트림을 주어진 비교자(comparator)를 이용하여 정렬합니다. 이때 비교자를 전달하지 않으면 기본적으로 오름차순으로 정렬합니다. 예제) 해당 스트림을 sorted() 메소드를 이용하여 오름차순으로 정렬된 스트림으로 반환public static void createStreamSorted() { Stream stream = Stream.of("Python", "Java", "PHP", "JavaScript", "Kotlin"); stream.sorted().forEach(System.out::println);} Console Output 예제) 해당 스트림을 sorted() 메소드를 ..
-
[Java] 스트림(Stream)의 중개 연산 - 제한 : limit(), skip()Java/Stream(스트림) 2022. 7. 14. 16:01
목차 스트림(Stream)의 중개 연산 - 제한 : limit(), skip()1. limit()limit() 메소드는 해당 스트림의 첫 번째 요소부터 전달된 갯수만큼의 요소만으로 이루어진 새로운 스트림을 반환합니다. 예제) 해당 스트림을 limit() 메소드를 이용하여 첫 번째 요소부터 다섯 번째 요소만큼 이루어진 스트림으로 반환public static void createStreamLimit() { Stream stream = Arrays.stream( new String[]{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"}); stream.limit(5).forEach(System.out::println);}Console Output 예제) 무한..