Stream API-র takeWhile() মেথড প্রেডিকেট false রিটার্ন করার পর্যন্ত সব মান এক্সেপ্ট করে। অন্যদিকে dropWhile() মেথড প্রেডিকেট ম্যাচ হওয়া পর্যন্ত সব মান ড্রপ করে। যদি স্ট্রিম অর্ডার্ড হয়, তবে 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