Stream API 的t#akewhile() 方法接受所有值,直到predicate # 傳回false,而 Stream API 的>dropWhile() 方法會刪除所有值,直到它與謂詞相符。如果流是有序的,則takewhile() 方法會傳回一個流,其中包含從此流中獲取的與謂詞匹配的元素的最長前綴,而dropWhile() 方法傳回符合謂詞後的剩餘流。如果流是無序的,則takewhile() 方法傳回一個流,該流由從與給定謂詞匹配的流中提取的元素子集組成,而dropWhile() 方法傳回刪除與給定謂詞相符的元素子集後,由流的剩餘元素組成的流。
<strong>default Stream<T> takeWhile(Predicate<? super T><!--? super T--> predicate)</strong>
import java.util.stream.Stream; public class TakeWhileMethodTest { public static void main(String args[]) { <strong>Stream</strong>.<strong>of</strong>("India", "Australia", "Newzealand", "", "South Africa", "England") .<strong>takeWhile</strong>(o->!o.isEmpty()) .forEach(System.out::print); } }
<strong>IndiaAustraliaNewzealand </strong>
<strong>default Stream<T> dropWhile(Predicate<? super T><!--? super T--> predicate)</strong>
import java.util.stream.Stream; public class DropWhileMethodTest { public static void main(String args[]) { <strong>Stream</strong>.<strong>of</strong>("India", "Australia", "Newzealand", "", "England", "Srilanka") .<strong>dropWhile</strong>(o->!o.isEmpty()) .forEach(System.out::print); System.out.println(); <strong>Stream</strong>.<strong>of</strong>("India", "", "Australia", "", "England", "Srilanka") .<strong>dropWhile</strong>(o->!o.isEmpty()) .forEach(System.out::print); } }
<strong>EnglandSrilanka AustraliaEnglandSrilanka</strong>
以上是Java 9中takewhile()和dropWhile()方法的差別是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!