DEV Community

lou
lou

Posted on

Interface Predicate en Java bDarija

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)

Enter fullscreen mode Exit fullscreen mode
  • 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  
}
Enter fullscreen mode Exit fullscreen mode

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));    
}}
Enter fullscreen mode Exit fullscreen mode

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;}

}
Enter fullscreen mode Exit fullscreen mode

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
      }
   }
Enter fullscreen mode Exit fullscreen mode

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;
 }
Enter fullscreen mode Exit fullscreen mode

Top comments (0)