Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความแตกต่างระหว่างวิธี takewhile () และ dropWhile () ใน Java 9?


The takewhile() วิธีการ สตรีม API ยอมรับค่าทั้งหมดจนถึง ภาคแสดง ส่งคืนค่าเท็จในขณะที่ 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