AllMatch के जावा डॉक्टर के अनुसार ():
इस धारा के सभी तत्व प्रदान किए गए विधेय से मेल खाते हैं या नहीं। यदि परिणाम निर्धारित करने के लिए आवश्यक नहीं है, तो सभी तत्वों पर विधेय का मूल्यांकन न करें। यदि स्ट्रीम खाली है तो {@code true} वापस आ जाता है और विधेय का मूल्यांकन नहीं किया जाता है।
@apiNote
यह विधि धारा के तत्वों (सभी x P (x) के लिए) पर विधेय के सार्वभौमिक परिमाणीकरण का मूल्यांकन करती है । यदि धारा खाली है, तो परिमाणीकरण को रिक्त रूप से संतुष्ट कहा जाता है और यह हमेशा {@code true} (पी (x) की परवाह किए बिना) होता है।
इस धारा के तत्वों पर लागू करने के लिए विधेय करें @return {@code true} यदि धारा के सभी तत्व प्रदत्त विधेय से मेल खाते हैं या धारा रिक्त है, अन्यथा {@code false}
आपके मामले में:
1-
p(x) : s -> s.startsWith("F")
X : "Fred"
result : X P(X) = true
2-
p(x) : s -> s.startsWith("F")
X : "Jim"
result : X P(X) = false
आगे कोई मूल्यांकन नहीं होगा, क्योंकि एक्सपी (एक्स) = गलत है
boolean result = Arrays.asList("Fred", "Finda", "Fish")
.stream()
.peek(System.out::println)
.allMatch(s -> s.startsWith("F"));
System.out.println("Result "+result);
आउटपुट है:
Fred
Finda
Fish
Result true
यहाँ पूरी तरह से संसाधित प्रक्रिया है क्योंकि xP (x) = प्रत्येक तत्व से सच है