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

avec Java Discussion :

List get plusieurs elements


Sujet :

avec Java

  1. #1
    Membre du Club Avatar de Bathou
    Inscrit en
    Mars 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2007
    Messages : 179
    Points : 52
    Points
    52
    Par défaut List get plusieurs elements
    Bonjour,

    J'ai une liste d'objets definis comme suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    public class Annotations {
        public String word;
        public String code;
    }
     
     
    //donc ma liste
     
    List<Annotations> liste1;
    Je voudrais récupérer uniquement certains elements de ma liste1 dont la variable code est egale à ce que je souhaite.
    Et je coince un peu... J'ai pensé à overrider la fonction get de list...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    List<Annotations> liste1=new List<Annotations>(){
                    List<Annotations> get(String code){
                            //??
                    }
                            }
    mais je ne m'en sors pas trop trop...

    Est ce que je ne suis pas entrain de faire une usine à gaz? et si non, est ce que parcourir la liste et checker les elements un à un est la seule solution?

    Merci pour votre aide
    Cdlt
    Bathou
    Parce que je nêm bien râler moi...

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par Bathou Voir le message
    Et je coince un peu... J'ai pensé à overrider la fonction get de list...
    Ceci est un overload, pas un override.
    Un override en Java est une redéfinition de méthode existante dans une classe, ou une définition tout court de méthode abstraite pas encore définie par les types ascendants. Comme son nom l'indique, elle remplace la méthode qui existait déjà, et s'exécute à sa place. La méthode doit donc porter le même nom, accepter les mêmes paramètres et renvoyer le même type de retour. Là tu prends des paramètres différents du get() de list (et le type de retour est différent aussi,) donc ce n'est pas un override.
    Un overload est une méthode qui porte le même nom qu'une autre mais prend des paramètres différents. Les deux méthodes n'ont donc en fait aucun rapport l'une avec l'autre, c'est juste leur nom qui peut donner l'impression, fausse, qu'elles sont liées.

    Citation Envoyé par Bathou Voir le message
    Est ce que je ne suis pas entrain de faire une usine à gaz?
    Si. L'intérêt de créer une nouvelle classe étendant les classes List n'est pas flamboyant.
    Ne serait-il pas plus simple de juste faire une méthode qui prend en paramètres, une List et le code que tu veux chercher dans cette List ?
    (Indice : si, carrément.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Et en java 8 c'est super facile à implémenter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public List<Annotation> getAnnotations(List<Annotation> annotations, int code){
        return annotations.stream()
            .filter(p -> p.code == code)
            .collect(Collectors.toList());
    }
    Voir si t'as de grandes collections et des tests compliqué, profiter du multi threads:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public List<Annotation> getAnnotations(List<Annotation> annotations, int code){
        return annotations.parallelStream()
            .filter(p -> p.code == code)
            .collect(Collectors.toList());
    }

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/04/2013, 14h07
  2. Creation et manipulation d'une liste a plusieurs elements
    Par student_ dans le forum Débuter
    Réponses: 6
    Dernier message: 21/02/2011, 08h44
  3. Comment avoir plusieurs elements dans une liste chainée
    Par line86 dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 01/05/2008, 21h18
  4. [MFC] Classer une liste a plusieur colonne
    Par Kevgeii dans le forum MFC
    Réponses: 8
    Dernier message: 07/03/2005, 15h09

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