산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

Java 9 스트림 API 개선: takeWhile 등 새로운 메서드

스트림은 객체 시퀀스에서 집계 연산을 수행하도록 돕기 위해 Java에 도입되었습니다. Java 9에서는 스트림을 더 좋게 만들기 위해 몇 가지 메서드가 추가되었습니다.

takeWhile(Predicate 인터페이스)

구문

default Stream<T> takeWhile(Predicate<? super T> predicate)

takeWhile 메서드는 프레디케이트가 false를 반환할 때까지 모든 값을 가져옵니다. 정렬된 스트림의 경우, 주어진 프레디케이트와 일치하는 이 스트림에서 가져온 요소의 가장 긴 접두사로 구성된 스트림을 반환합니다.

예제

import java.util.stream.Stream;

public class Tester {
    public static void main(String[] args) {
        Stream.of("a","b","c","","e","f").takeWhile(s -> !s.isEmpty())
            .forEach(System.out::print);
    }
}

출력

abc

takeWhile 메서드는 a, b, c 값을 모두 가져간 후 문자열이 비면 실행을 멈춥니다.

dropWhile(Predicate 인터페이스)

구문

default Stream<T> dropWhile(Predicate<? super T> predicate)

dropWhile 메서드는 프레디케이트가 true를 반환할 때까지 시작 부분의 모든 값을 버립니다. 정렬된 스트림의 경우, 주어진 프레디케이트와 일치하는 요소의 가장 긴 접두사를 버린 후 이 스트림의 남은 요소로 구성된 스트림을 반환합니다.

예제

import java.util.stream.Stream;

public class Tester {
    public static void main(String[] args) {
        Stream.of("a","b","c","","e","f").dropWhile(s -> !s.isEmpty())
            .forEach(System.out::print);
        System.out.println();
        Stream.of("a","b","c","","e","","f").dropWhile(s -> !s.isEmpty())
            .forEach(System.out::print);
    }
}

출력

ef
ef

dropWhile 메서드는 a, b, c 값을 버린 후 문자열이 비면 모든 값을 가져옵니다.

iterate

구문

static <T> Stream<T> iterate(T seed, Predicate<? super T> hasNext, UnaryOperator<T> next)

iterate 메서드는 이제 hasNext 프레디케이트를 매개변수로 가지며, hasNext 프레디케이트가 false를 반환하면 루프를 멈춥니다.

예제

import java.util.stream.IntStream;

public class Tester {
    public static void main(String[] args) {
        IntStream.iterate(3, x -> x < 10, x -> x + 3).forEach(System.out::println);
    }
}

출력

3
6
9

ofNullable

구문

static <T> Stream<T> ofNullable(T t)

ofNullable 메서드는 NullPointerException을 방지하고 스트림에 대한 null 체크를 피하기 위해 도입되었습니다. 이 메서드는 비-null인 경우 단일 요소를 포함하는 순차 스트림을 반환하고, 그렇지 않으면 빈 스트림을 반환합니다.

예제

import java.util.stream.Stream;

public class Tester {
    public static void main(String[] args) {
        long count = Stream.ofNullable(100).count();
        System.out.println(count);
        count = Stream.ofNullable(null).count();
        System.out.println(count);
    }
}

출력

1
0

java

  1. Java 연산자 마스터하기: 종류, 문법, 실전 예제
  2. Java 주석: 종류, 사용법, 모범 사례
  3. Java 향상된 for 루프(for-each) 완벽 가이드: 문법, 예제, 비교
  4. Java String 마스터하기: 생성, 메서드, 모범 사례
  5. Java 인터페이스 마스터: 개념, 구현, 모범 사례
  6. Java 익명 내부 클래스 마스터: 정의, 문법, 실전 예제
  7. Java Try-with-Resources 마스터: 자동 리소스 관리 완전 해설
  8. Java 애너테이션 완전 해설: 종류, 배치 위치, 실전 예제
  9. Java Assertion(어설션) 실전 가이드: 버그 조기 발견과 코드 신뢰성 확보
  10. Java 9 (JDK 9) – 주요 기능 및 이점