IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

explications pour filtrer une collection avec iterator


Sujet :

Collection et Stream Java

  1. #1
    Membre habitué Avatar de touftouf57
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 362
    Points : 174
    Points
    174
    Par défaut explications pour filtrer une collection avec iterator
    Bonjour à tous

    Je souhaite filtrer une List. Mais cette classe n'a pas de méthode filter, contrairement à la classe Collection.

    J'ai recherché sur le web et je suis tombé sur ceci http://www.erik-rasmussen.com/blog/2...ith-iterables/.

    L'idée me semble bonne, mais je ne pige pas tout ce qu'il fait.

    Y aurait-il une âme charitable, qui pourrait éclairer ma lanterne.

    Autre question de bas niveau, que signifie le "..." dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public AndFilter(final Filter<T>... filters) {
        this.filters = filters;
      }
    Il me semble l'avoir déjà "apercu" auparavant mais je ne me souviens plus à quoi cela correspond.

    Merci d'avance

  2. #2
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 569
    Points : 15 526
    Points
    15 526
    Par défaut
    Il serait bon que tu précises ce que tu n'a pas compris.

    La solution proposée consiste a définir une classe abstraite Filter qui doit être surchargée en redéfinissant la méthode passes() pour qu'elle indique les éléments de la collection a conserver et à ignorer.
    Personnellement je ne trouve qu'il s'agit d'une idée intéressante sur le papier mais pas vraiment dans la pratique : pour éviter un code d'une ligne, on se retrouve a définir une nouvelle classe.

    Le ... sigifie que le nombre d'argument est variable.
    La variable filters est en fait un tableau de type Filter<T>[] qui contient tous les arguments de la fonction.

  3. #3
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par Uther Voir le message
    Personnellement je ne trouve qu'il s'agit d'une idée intéressante sur le papier mais pas vraiment dans la pratique : pour éviter un code d'une ligne, on se retrouve a définir une nouvelle classe.
    Le faire soit-même c'est clairement contre-productif, mis à part si on se développe une librairie d'outils...

    Par contre on peut utiliser des librairies externes comme les Jakarta Commons Collections ou les Google Collections, qui proposent des choses dans ce genre...

    a++

  4. #4
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    voir aussi com.google.common.collect
    classe Iterators methode filter

    ICI

    edit: décidément il faut que je supprime le "aussi" dans mon post!
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

  5. #5
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    Citation Envoyé par Uther Voir le message
    Il serait bon que tu précises ce que tu n'a pas compris.

    La solution proposée consiste a définir une classe abstraite Filter qui doit être surchargée en redéfinissant la méthode passes() pour qu'elle indique les éléments de la collection a conserver et à ignorer.
    Personnellement je ne trouve qu'il s'agit d'une idée intéressante sur le papier mais pas vraiment dans la pratique : pour éviter un code d'une ligne, on se retrouve a définir une nouvelle classe.
    Absolument d'accord, c'est plus lourd à gérer qu'autre chose.

    Le ... sigifie que le nombre d'argument est variable.
    La variable filters est en fait un tableau de type Filter<T>[] qui contient tous les arguments de la fonction.
    C'est un peu plus flexible que cela, on peut aussi l'appeler avec des arguments passés directement, comme AndFilter(filtre) ou AndFilter(filtre1,filtre2). Ça évite d'avoir à créer un tableau et c'est plus joli dans le code

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 08/10/2009, 11h33
  2. Affichage d'une Collection avec logic:iterate
    Par koukoya dans le forum Struts 1
    Réponses: 5
    Dernier message: 04/10/2006, 11h52
  3. Réponses: 5
    Dernier message: 26/05/2005, 15h40
  4. comment filtrer une table avec deux criteres càd 2 colonnes
    Par athmane2dz dans le forum Bases de données
    Réponses: 7
    Dernier message: 28/07/2004, 15h25
  5. Conseils pour developper une application avec Oracle
    Par belugha dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 02/06/2003, 16h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo