Predicate fJava kaykon fjava.util.Function hia wahd l'interface fonctionnelle bi ma3na ahana kathtawi cela méthode whda.
W katmtel wahd la methode smytha test() o li katakhod wahd l'argument.
W flkeher katrejee lik valeur boolean, y3ni katrejee lik ssahih wlh ghalat.
W ka mola7ada ra f aghlabiat l ahyan ghatlqawh mea lambda.
La methode test() lghaya mnha howa theqeq lik mn l'argument li kataked flparametre wach kayheqeq chorot wla la.
Hadchi elach natija katkon ya imma ssahih awla ghalat.
syntaxe:
boolean test(T t)
- T type de l'argument
- t l'argument
- boolean type de retourne, true ila l'argument kayheqeq dik lpredicat awla false
exemple program:
public class PredicateTest {
public static void main(String[] args) {
Predicate<Integer> p = number -> (number % 2 == 0); System.out.println(p.test(8));//vrai
System.out.println(p.test(5));//faux
}
Sti3mal dialo flmain kalkon bhat tariqa:
public class PredicateTest {
public static void main(String[] args) {
Predicate<Integer> sup_a_deux= nombre -> (nombre>2); System.out.println(sup_a_deux.test(8));
System.out.println(sup_a_deux.test(5));
}}
Exemple sans lambda:
Edna classe Personne
public static class Personne{
private int Age;
public Personne(int Age) {this.Age=Age;}
public int getAge() {return Age;}
}
Lgharad dialna mn Predicate howa ychof wach l'age dial la personne kber mn 25 ans
public static class Age_Sup_A_25 implements Predicate{
@Override
public boolean test(Personne personne) {
return personne.getAge()>25;
//fhad return kandiro test ela l'age dial Personne
//kangolo l méthode retourne true si l'Age est superieur a 25 sinon false
}
}
had la fonction filtrer, katakhod flparametres la liste des personnes o lpredicate, mn b3d kat-retourne liste jdida etinaha smia nvl_liste li kathqeq dak chert dial predicate o li kna dwezna flparametre
Fhad lmital la boucle foreach : for (Personne p : list_personne)
katsme7 lina ndiro test li kayn f predicate ela kolla personne mn liste
o chert li f predicate howa wach l'age dial la personne kber mn 25ans
Fach predicate.test(p)
katchof bli test(p) rej3at true katzid la personne p fla liste jdida nvl_liste nvl_liste.add(p)
public static List<Apple> filter(List<Personne> list_personne, Predicate<Personne> predicate){
List<Apple> nvl_liste= new ArrayList();
for (Personne p : list_personne) {
if(predicate.test(p))
nvl_liste.add(p);
}
return nvl_liste;
}
Top comments (0)