Java Doc Of allMatch () uyarınca:
Bu akışın tüm öğelerinin sağlanan yüklemle eşleşip eşleşmediğini döndürür. Sonucu belirlemek için gerekli değilse, tüm elementler üzerindeki yüklemi değerlendiremeyebilir. Akış boşsa, {@code true} döndürülür ve yüklem değerlendirilmez.
@apiNote
Bu yöntem , akımın elemanları üzerindeki yüklemin evrensel nicelleştirilmesini değerlendirir (tüm x P (x) için). Akış boşsa, nicelemenin boş bir şekilde karşılandığı ve her zaman {@code true} (P (x) ne olursa olsun) olduğu söylenir.
Akışın tüm öğeleri sağlanan yüklemle eşleşiyorsa veya akış boşsa, bu akışın @return {@code true} öğelerine uygulanacak şekilde yüklemesi, aksi halde {@code false}
Senin durumunda:
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
Daha fazla değerlendirme yapılmayacaktır, çünkü XP (X) = yanlış
boolean result = Arrays.asList("Fred", "Finda", "Fish")
.stream()
.peek(System.out::println)
.allMatch(s -> s.startsWith("F"));
System.out.println("Result "+result);
Çıktı:
Fred
Finda
Fish
Result true
Burada akış tamamen işlendi çünkü her öğeden xP (x) = true