Filtrer le contenu d’un tableau selon des critères
marie12_2000
Messages postés
29
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour a tous , je débute en java,mon problème est le suivant : j’ai un tableau qui contient des objets je veux filtrer certains objets en effectuant une recherche ciblée selon un ou plusieurs caractères , il faut savoir aussi que le système doit être conçu de manière à pouvoir a n’importe quel moment rajouter un critère de sélection.
Quels sont les classes méthodes ... que je pourrais utiliser car je n’ai aucune idée de comment commencer
Merci beaucoup
Quels sont les classes méthodes ... que je pourrais utiliser car je n’ai aucune idée de comment commencer
Merci beaucoup
1 réponse
-
Bonjour,
Je dirais que ça dépend beaucoup du type d'objet que tu manipules.
Tu peux regarder du côté des Expression Language :public class Toto { public String getStr() { return "toto"; } public String[] getTab() { return new String[] { "tata", "toto", "titi" }; } }import javax.el.ELProcessor; public class Test { public static Object eval(String name, Object bean, String expression) { ELProcessor proc = new ELProcessor(); proc.defineBean(name, bean); return proc.eval(expression); } public static void main(String[] args) { System.out.println(eval("x", new Toto(), "x.str == x.tab[0]")); // false System.out.println(eval("x", new Toto(), "x.str == x.tab[1]")); // true System.out.println(eval("x", new Toto(), "x.str == x.tab[2]")); // false } }-
-
Les Expression Language permettent de faire ça. Exemple :
public class Produit { private double prix; public Produit(double prix) { this.prix = prix; } public double getPrix() { return prix; } }Produit[] produits = { new Produit(1), new Produit(2), new Produit(3), new Produit(4), new Produit(5) }; for (Produit produit : produits) { if ((boolean) eval("p", produit, "p.prix >= 2 && p.prix < 3.5")) { System.out.println(produit.prix); // 2.0; 3.0; } } -
-
-
-