ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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 createStreamIntMax() {
      IntStream ints = IntStream.of(10, 20, 30, 40, 50);
      OptionalInt opMaxInt = ints.max();
      opMaxInt.ifPresent(System.out::println);
    }

    Console Output

     

    예제) 해당 스트림에서 가장 큰 값을 반환(문자열)

    문자열에서 가장 큰 값(알파벳 순서)을 구하려면 Comparator에서 문자열의 알파벳 순서를 비교하도록 설정 (compareToIgnoreCase()는 대/소문자를 구분하지 않고 비교)

    public static void createStreamStringMax() {
      List<String> strings = Arrays.asList("Python", "Java", "PHP", "JavaScript", "Kotlin");
      Comparator<String> comparator = (s1, s2) -> s1.compareToIgnoreCase(s2);
      Optional<String> opMaxString = strings.stream().max(comparator);
      opMaxString.ifPresent(System.out::println);
    }

    Console Output

     

    예제) 해당 스트림에서 문자열의 길이가 가장 큰 값을 반환

    public static void createStreamStringMaxLength() {
      List<String> strings = Arrays.asList("Python", "Java", "PHP", "JavaScript", "Kotlin");
      Comparator<String> comparatorLength = Comparator.comparingInt(String::length);
      Optional<String> opMaxString = strings.stream().max(comparatorLength);
      opMaxString.ifPresent(System.out::println);
    }

    Console Output

     

    3. min()

    해당 스트림의 요소 중에서 가장 작은 값을 가지는 요소를 참조하는 Optional 객체를 반환합니다.


    예제) 해당 스트림의 가장 작은 값을 가지는 요소를 반환

    public static void createStreamIntMax() {
      IntStream ints = IntStream.of(10, 20, 30, 40, 50);
      OptionalInt opMaxInt = ints.max();
      opMaxInt.ifPresent(System.out::println);
    }

    Console Output

     

    예제) 해당 스트림에서 가장 작은 값을 반환(문자열)

    문자열에서 가장 큰 값(알파벳 순서)을 구하려면 Comparator에서 문자열의 알파벳 순서를 비교하도록 설정 (compareToIgnoreCase()는 대/소문자를 구분하지 않고 비교)

    public static void createStreamStringMin() {
      List<String> strings = Arrays.asList("Python", "Java", "PHP", "JavaScript", "Kotlin");
      Comparator<String> comparator = (s1, s2) -> s1.compareToIgnoreCase(s2);
      Optional<String> opMinString = strings.stream().min(comparator);
      opMinString.ifPresent(System.out::println);
    }

    Console Output

     

    예제) 해당 스트림에서 문자열의 길이가 가장 짧은 값을 반환

    public static void createStreamStringMinLength() {
      List<String> strings = Arrays.asList("Python", "Java", "PHP", "JavaScript", "Kotlin");
      Comparator<String> comparatorLength = Comparator.comparingInt(String::length);
      Optional<String> opMinString = strings.stream().min(comparatorLength);
      opMinString.ifPresent(System.out::println);
    }

    Console Output

     

    소스 코드는 Github Repository 참조하세요.
    https://github.com/tychejin1218/blog/blob/main/stream/src/stream/Example06.java

    반응형

    댓글

Designed by Tistory.