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

Java 9 - 스트림 API 개선 사항

스트림은 개발자가 일련의 개체에서 집계 작업을 수행하는 데 도움이 되도록 Java에 도입되었습니다. Java 9에서는 스트림을 개선하기 위해 몇 가지 메서드가 더 추가되었습니다.

takeWhile(술어 인터페이스)

구문

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);		 
   } 
}

출력

takeWhile 메서드는 모든 b, c 값을 취한 다음 문자열이 비어 있으면 실행을 중지합니다.

abc

dropWhile(술어 인터페이스)

구문

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);
   } 
}

출력

dropWhile 메소드는 a, b 및 c 값을 삭제하고 문자열이 비어 있으면 모든 값을 취합니다.

ef
ef

반복

구문

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

iterate 메서드는 이제 hasNext 조건자가 false를 반환하면 루프를 중지하는 매개변수로 hasNext 조건자를 가집니다.

예시

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이 아닌 경우 단일 요소를 포함하는 순차적 Stream을 반환하고, 그렇지 않으면 빈 Stream을 반환합니다.

예시

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. 자바 연산자
  2. 자바 주석
  3. 자바 for-each 루프
  4. 자바 문자열
  5. 자바 인터페이스
  6. 자바 익명 클래스
  7. 자바 리소스 사용
  8. 자바 주석
  9. 자바 어설션
  10. 자바 9 - 개요