Predicate ve Birleştirme
Mantıksal sınamaları birleştirin
Predicate ve Birleştirme, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Java Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Java Academy kursu toplamda 4 dersten oluşur.
Predicate Ne Yapar
Predicate<T> bir değer alır ve boolean döndürür.
- Yöntemi
boolean test(T t)şeklindedir. - Bir evet/hayır koşulunu modeller.
import java.util.function.Predicate;
public class Main {
public static void main(String[] args) {
Predicate<Integer> isEven = n -> n % 2 == 0;
System.out.println(isEven.test(4));
System.out.println(isEven.test(5));
}
}filter İçinde Predicate
Stream.filter bir Predicate alır ve yalnızca koşulu karşılayan öğeleri tutar.
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Integer> nums = List.of(1, 2, 3, 4, 5, 6);
List<Integer> evens = nums.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
System.out.println(evens);
}
}and ile Birleştirme
and, yalnızca her iki koşul da sağlandığında doğru olan bir koşul oluşturur.
import java.util.function.Predicate;
public class Main {
public static void main(String[] args) {
Predicate<Integer> positive = n -> n > 0;
Predicate<Integer> even = n -> n % 2 == 0;
Predicate<Integer> both = positive.and(even);
System.out.println(both.test(4));
System.out.println(both.test(-2));
}
}or ile Birleştirme
or, en az bir koşul sağlandığında doğru döndürür.
import java.util.function.Predicate;
public class Main {
public static void main(String[] args) {
Predicate<String> empty = String::isEmpty;
Predicate<String> shortStr = s -> s.length() < 3;
Predicate<String> either = empty.or(shortStr);
System.out.println(either.test(""));
System.out.println(either.test("hi"));
System.out.println(either.test("hello"));
}
}negate ile Olumsuzlama
negate, bir koşulun sonucunu tersine çevirerek mantıksal NOT işlemini sağlar.
import java.util.function.Predicate;
public class Main {
public static void main(String[] args) {
Predicate<Integer> even = n -> n % 2 == 0;
Predicate<Integer> odd = even.negate();
System.out.println(odd.test(3));
}
}Predicate.not Statik Yardımcısı
Predicate.not(p), özellikle yöntem referanslarıyla birlikte okunabilir bir statik olumsuzlama yöntemidir.
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> words = List.of("", "a", "", "bc");
List<String> nonEmpty = words.stream()
.filter(Predicate.not(String::isEmpty))
.collect(Collectors.toList());
System.out.println(nonEmpty);
}
}Predicate.isEqual
Predicate.isEqual(target), Objects.equals kullanarak sabit bir değerle eşitliği sınayan bir koşul oluşturur.
import java.util.function.Predicate;
public class Main {
public static void main(String[] args) {
Predicate<String> isJava = Predicate.isEqual("java");
System.out.println(isJava.test("java"));
System.out.println(isJava.test("python"));
}
}Birden Çok Koşulu Zincirleme
Zengin kuralları ifade etmek için and, or ve negate işlemlerini zincirleyebilirsiniz. Gruplandırmayı denetlemek için parantez kullanınız.
import java.util.function.Predicate;
public class Main {
public static void main(String[] args) {
Predicate<Integer> big = n -> n > 100;
Predicate<Integer> even = n -> n % 2 == 0;
Predicate<Integer> rule = big.and(even).or(n -> n == 0);
System.out.println(rule.test(0));
System.out.println(rule.test(102));
System.out.println(rule.test(101));
}
}İki Girdi için BiPredicate
BiPredicate<T, U> iki bağımsız değişkeni sınar ve ayrıca and, or ve negate işlemlerini destekler.
import java.util.function.BiPredicate;
public class Main {
public static void main(String[] args) {
BiPredicate<String, Integer> hasLength = (s, n) -> s.length() == n;
System.out.println(hasLength.test("hello", 5));
}
}anyMatch İçinde Predicateler
anyMatch, allMatch ve noneMatch gibi akış sonlandırma işlemlerinin tümü bir Predicate alır.
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> nums = List.of(1, 3, 5, 8);
System.out.println(nums.stream().anyMatch(n -> n % 2 == 0));
System.out.println(nums.stream().allMatch(n -> n > 0));
}
}Yeniden Kullanılabilir Predicate Sabitleri
Koşulları adlandırılmış değişkenler olarak tanımlamak, filtreleme işlem hatlarını kendi kendini açıklayan ve yeniden kullanılabilir hâle getirir.
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
Predicate<String> nonBlank = s -> !s.isBlank();
List<String> input = List.of("a", " ", "", "b");
System.out.println(input.stream().filter(nonBlank).collect(Collectors.toList()));
}
}Hızlı Kontrol
p.and(q) ne üretir?
Özet
Mantıksal sınamalar oluşturdunuz:
Predicate<T>, bir boolean döndürmek içintestkullanır.and,orvenegate, koşulları kısa devre değerlendirmesiyle birleştirir.Predicate.notvePredicate.isEqual, kullanışlı statik yardımcılardır.BiPredicateiki girdiyi sınar.
Sıkça Sorulan Sorular
“Predicate ve Birleştirme” dersi ücretsiz mi?
Evet — “Predicate ve Birleştirme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Java Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Java Academy kursu toplamda 4 dersten oluşur.
“Predicate ve Birleştirme” dersinde ne öğreneceğim?
Mantıksal sınamaları birleştirin Java Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Java Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Java Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Predicate ve Birleştirme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Java Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Java Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Function ve BiFunction
- Supplier ve Consumer
- Predicate ve Birleştirme
- Özel İşlevsel Arayüzler