Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java 9에서 takewhile() 및 dropWhile() 메소드의 차이점은 무엇입니까?


takewhile() 스트림 방법 API는 술어 까지 모든 값을 허용합니다. false를 반환하는 반면 dropWhile() 스트림 방법 API는 술어와 일치할 때까지 모든 값을 삭제합니다. . 스트림이 주문되면 takewhile() 메소드는 가장 긴 접두사 로 구성된 스트림을 반환합니다. 술어 와 일치하는 이 스트림에서 가져온 요소의 반면 dropWhile() 메소드는 술어를 일치시킨 후 나머지 스트림을 리턴합니다. 스트림이 순서가 지정되지 않은 경우 takewhile() 메소드는 주어진 술어와 일치하는 스트림에서 추출된 요소의 하위 집합으로 구성된 스트림을 반환하는 반면 dropWhile() 메서드는 주어진 술어와 일치하는 요소의 하위 집합을 삭제한 후 스트림의 나머지 요소로 구성된 스트림을 반환합니다.

takeWhile()의 구문

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

import java.util.stream.Stream;
public class TakeWhileMethodTest {
   public static void main(String args[]) {
      Stream.of("India", "Australia", "Newzealand", "", "South Africa", "England")
      .takeWhile(o->!o.isEmpty())
      .forEach(System.out::print);
   }
}

출력

IndiaAustraliaNewzealand


dropWhile()의 구문

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

예시

import java.util.stream.Stream;
public class DropWhileMethodTest {
   public static void main(String args[]) {
      Stream.of("India", "Australia", "Newzealand", "", "England", "Srilanka")
      .dropWhile(o->!o.isEmpty())
      .forEach(System.out::print);
      System.out.println();
      Stream.of("India", "", "Australia", "", "England", "Srilanka")
      .dropWhile(o->!o.isEmpty())
      .forEach(System.out::print);
   }
}

출력

EnglandSrilanka
AustraliaEnglandSrilanka