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 :

Les Manipulations d'un ArrayList


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Analyste IP + Programmation
    Inscrit en
    Février 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste IP + Programmation
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2016
    Messages : 59
    Par défaut Les Manipulations d'un ArrayList
    Bonjour,

    Dans un premier temps, j'espère que je fais bien mon post

    J'ai un travail à faire avec l'utilisation des arraylist, notion héritage...etc

    Ma classe principale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public class PrincipaleARN {
        public static void main() {
               AcideRibonucleique arn1 = new AcideRibonucleique( Arrays.asList(Nucleotide.A, Nucleotide.U, Nucleotide.G));
               }
    }
    Ma classe AcideRibonucleique qui hérité de Nucleotide sous forme de tableau dynamique si j'ai bien compris...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    public class AcideRibonucleique extends ArrayList<Nucleotide>{
     
    public AcideRibonucleique( Collection <Nucleotide> c ) {
            super(c);
            }
     
    /* 
    public boolean estValide() // cette méthode sert à valider si mon arraylist ARN est valide sous différentes conditions. Je dois comparer plusieurs positions de mon arraylist si ces positions sont bon...
     
    Donc comment faire ?
     
    */
     
        }
    Ma classe enum :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public enum Nucleotide {
    	A, B, C, D, G, H, K, M, N, R, S, U, V, W, Y;
    }
    Un gros merci d'avance

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Pour permettre à d'autres méthodes d'une classe de manipuler des valeurs ou objets passés en arguments du constructeur, il te faut stocker ces valeurs ou objets en attributs de la classe, s'il s'agit de données existantes pendant la durée de vie de la classe. S'ils s'agit de méthodes à appeler lors de la construction de l'objet, on peut passer aussi la donnée en argument de ces autres méthodes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public class Exemple {
     
        private Collection<String> collection; // un attribut pour stocker la collection
     
        public Exemple(Collection<String> collection) {
            this.collection=collection; // initialisation de l'attribut avec la valeur passée en argument
        }
     
        public int size() {
            return collection.size(); // utilisation de l'objet qu'on avait passé en argument
        }
     
     
     
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    public class Exemple {
     
       private Collection<String> collection;
     
       public Exemple(Collection<String> collection) {
            collection = copie( collection ); // on veut faire une copie avec quelques nettoyages avant de stocker ce qui est passé en argument
            this.collection=collection; // initialisation de l'attribut avec la copiée de la valeur passée en argument
       }
     
       private Collection<String> copie(Collection<String> collection) {
            if ( collection==null ) return Collections.emptyList(); // si collection est nulle, on stocke une liste vide
            List<String> list = new ArrayList<>(collection.size()); // on utilise indirectement la collection passée en argument du constructeur parce qu'elle a été passée en argument de la méthode copie
            for(String string : collection) { // on parcourt la liste passée en argument
               if ( string!=null ) { // on ne garde que les valeurs non null
                 list.add(string); 
               }
            }
            return list;
       }
     
       public int size() {
            return collection.size(); // utilisation de l'objet qu'on avait passé en argument
       }
     
    }
    Attention, si une ArrayList est bien une Collection, en revanche, une Collection n'est pas forcément une ArrayList.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre confirmé
    Homme Profil pro
    Analyste IP + Programmation
    Inscrit en
    Février 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste IP + Programmation
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2016
    Messages : 59
    Par défaut
    Merci, je suis entrain d'étudier votre réponse pour l'incorporer à mon travail...

    Je ne suis suis pas trop familier avec la boucle for (String string : collection)

    Je suis plus habituer d'utiliser for (int i = 0; i < tableau.size(); i++)

    Par contre, j'ai une contraire que le prof nous a donné soit d'avoir un seul return par méthode...

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par benoit256255 Voir le message
    Par contre, j'ai une contraire que le prof nous a donné soit d'avoir un seul return par méthode...
    Ce sont les puristes de la programmation structurée qui tienne à un seul point de sortie. Dans beaucoup de cas, c'est un bon moyen d'éviter certaines erreurs lors de la modification du code. Maintenant, parfois ça complique inutilement le code.
    Sinon on peut avoir plusieurs return dans une méthode si ceux-ci on une éxecution exclusive (si l'un s'exécute, l'autre ne peut pas, et dans mon exemple, c'est la condition sur le null qui fait que c'est exclusif). Si tu veux l'équivalent de ce que j'ai écris avec un seul point de sortie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    private Collection<String> copie(Collection<String> collection) {
            List<String> list;
            if ( collection==null ) {
                  list = Collections.emptyList(); // si collection est nulle, on stocke une liste vide
            }
            else {
               list = new ArrayList<>(collection.size()); // on utilise indirectement la collection passée en argument du constructeur parce qu'elle a été passée en argument de la méthode copie
               for(String string : collection) { // on parcourt la liste passée en argument
                  if ( string!=null ) { // on ne garde que les valeurs non null
                    list.add(string); 
                  }
               } 
            }
            return list;
    }
    Citation Envoyé par benoit256255 Voir le message
    Je ne suis suis pas trop familier avec la boucle for (String string : collection)

    Je suis plus habituer d'utiliser for (int i = 0; i < tableau.size(); i++)
    Sauf que tu ne peux pas utiliser cette méthode pour parcourir une Collection : seule l'interface List permet l'accès à un élement par son index ! Il te faut donc changer le type de l'argument en List et le type de l'attribut aussi.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre confirmé
    Homme Profil pro
    Analyste IP + Programmation
    Inscrit en
    Février 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste IP + Programmation
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2016
    Messages : 59
    Par défaut
    Désolé si je pose beaucoup de question, ma logique n'est pas très automatique

    Le type <String> peut être remplacer par n'importe qu'elle type je suppose ?

    private Collection<String> copie(Collection<String> collection)

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par benoit256255 Voir le message
    Le type <String> peut être remplacer par n'importe qu'elle type je suppose ?
    Oui, tant que c'est une classe (on ne peut pas paramétrer une classe avec un type primitif (comme int, double...)).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

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

Discussions similaires

  1. Comment utiliser les données stockées dans un ArrayList?
    Par lsebe2 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 01/11/2014, 08h37
  2. comment utiliser des images enregistrées dans oracle dans mon application .Net
    Par dhay06 dans le forum Interfaces de programmation
    Réponses: 1
    Dernier message: 18/06/2010, 11h58
  3. Réponses: 2
    Dernier message: 02/05/2006, 14h34
  4. Projet VB v6 : utilisation de requête SQL dans mon code
    Par MITCH31 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 27/10/2005, 15h02

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