जावा 9 में, Oracle Corporation ने Stream API में चार उपयोगी नए मेथड जोड़े हैं। वे मेथड iterate(), ofNullable(), takeWhile() और dropWhile() हैं।
iterate()
iterate() का उपयोग पारंपरिक फॉर-लूप्स के स्ट्रीम संस्करण प्रतिस्थापन के रूप में किया जा सकता है। इस मेथड को एक और पैरामीटर, Predicate इंटरफेस जोड़कर सुधारा गया है जो हमें Predicate इंटरफेस के साथ परिभाषित शर्तों के आधार पर इन अंतहीन संख्याओं को रोकने की अनुमति देता है।
उदाहरण
import java.util.stream.Stream;
public class StreamIterateMethodTest {
public static void main(String[] args) {
Stream.iterate(1, i -> i < 5, i -> i + 1).forEach(System.out::println); // iterate()
}
}
आउटपुट
1 2 3 4
ofNullable()
ofNullable() मेथड एलिमेंट का स्ट्रीम ऑब्जेक्ट लौटाता है यदि यह नल नहीं है। अन्यथा, यह एक खाली स्ट्रीम लौटाता है।
उदाहरण
import java.util.stream.Stream;
public class StreamOfNullableMethodTest {
public static void main(String[] args) {
String str = "TutorialsPoint";
Stream.ofNullable(str).forEach(System.out::println); // ofNullable() मेथड
}
}
आउटपुट
TutorialsPoint
takeWhile()
takeWhile() मेथड को पास किया गया पैरामीटर एक Predicate इंटरफेस है। यह मेथड स्ट्रीम ऑब्जेक्ट के एलिमेंट को बाएं से दाएं तब तक लेता है जब तक Predicate ऑब्जेक्ट की शर्त पूरी नहीं होती।
उदाहरण
import java.util.stream.Stream;
public class StreamTakeWhileMethodTest {
public static void main(String[] args) {
Stream.of(1, 2, 3, 4, 5)
.takeWhile(i -> i < 5) // takeWhile() मेथड
.forEach(System.out::println);
}
}
आउटपुट
1 2 3 4
dropWhile()
dropWhile() मेथड को पास किया गया पैरामीटर भी एक Predicate इंटरफेस है। यह takeWhile() मेथड के विपरीत है। यह मेथड स्ट्रीम ऑब्जेक्ट में प्रत्येक एलिमेंट को बाएं से दाएं पास करता है और उन सभी एलिमेंट्स को अनदेखा करता है जो शर्त को पूरा करते हैं। एक बार शर्त पूरी न होने पर, यह वापस करने के लिए सभी शेष एलिमेंट्स लेता है।
उदाहरण
import java.util.stream.Stream;
public class StreamDropWhileMethodTest {
public static void main(String[] args) {
Stream.of(3, 2, 1, 4, 6, 7, 8, 9, 10)
.dropWhile(i -> i < 5) // dropWhile() मेथड
.forEach(System.out::println);
}
}
आउटपुट
6 7 8 9 10