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 :

Manipulation des items dans un tableau ou une liste


Sujet :

Collection et Stream Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 18
    Points : 11
    Points
    11
    Par défaut Manipulation des items dans un tableau ou une liste
    Bonjour,

    ah oui j'aimerais savoir un petit truc : j'aimerais faire un tableau d'objets ou une ArrayList d'objets qui me permettra par ex de crée 100 Personnes
    et de faire une boucle qui lance la construction des 100 personnes avec un constructeur qui leur attribut des noms/locations etc au hasard (ça c'est fait)

    mais le truc c'est qu'il faut que je puisse accéder à des objets donc j'ai essayé dans un petit programme avec juste une classe vide et si je fais des trucs comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //Ville[] v = new Ville[3];
     
    v[1].nomVille = "Paris";
    ça me met un nullpointer donc apparemment avec les tableaux c'est mort mais par exemple là avec un ArrayList j'ai essayé et ça compile pas si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ArrayList<Ville> villes = new ArrayList<>(); (ça c'est bon)
    villes.add(maville()); // ERREUR 
    *************^error: cannot find symbol
    j'ai pris une vieille classe d'un tuto pour tester :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    public class Ville {
     
     
     
      //Stocke le nom de notre ville
     
      String nomVille;
     
      //Stocke le nom du pays de notre ville
     
      String nomPays;
     
      //Stocke le nombre d'habitants de notre ville
     
      int nbreHabitants;
     
     
     
      //Constructeur par defaut
     
      public Ville(){
     
        System.out.println("Creation d'une ville !");          
     
        nomVille = "Inconnu";
     
        nomPays = "Inconnu";
     
        nbreHabitants = 0;
     
      }
     
     
     
      //Constructeur avec parametres
     
      //J'ai ajoute un « p » en premiere lettre des parametres.
     
      //Ce n'est pas une convention, mais ça peut être un bon moyen de les reperer.
     
      public Ville(String pNom, int pNbre, String pPays)
     
      {
     
        System.out.println("Creation d'une ville avec des parametres !");
     
        nomVille = pNom;
     
        nomPays = pPays;
     
        nbreHabitants = pNbre;
     
      }
    //*************   ACCESSEURS *************
     
     
     
      //Retourne le nom de la ville
     
      public String getNom()  {  
     
        return nomVille;
     
      }
     
      //Retourne le nom du pays
     
      public String getNomPays()
     
      {
     
        return nomPays;
     
      }
     
      // Retourne le nombre d'habitants
     
      public int getNombreHabitants()
     
      {
     
        return nbreHabitants;
     
      }
     
     
     
      //*************   MUTATEURS   *************
     
      //Definit le nom de la ville
     
      public void setNom(String pNom)
     
      {
     
        nomVille = pNom;
     
      }
     
      //Definit le nom du pays
     
      public void setNomPays(String pPays)
     
      {
     
        nomPays = pPays;
     
      }
     
      //Definit le nombre d'habitants
     
      public void setNombreHabitants(int nbre)
     
      {
     
        nbreHabitants = nbre;
     
      }
     
      public String laplus(Ville ville2){
        if (this.nbreHabitants > ville2.getNombreHabitants())
          return this.nomVille;
        if (ville2.getNombreHabitants() > this.nbreHabitants)
          return ville2.getNom();
        return "null";
      }
      /*private void set Categorie(){
        int categorie[] = {A, B, C, D}
        int valeurs[] = {1000, 10000, 100000, 1000000}
        int i = 0;
     
        (while i <= 3)
        if (this.nbreHabitants >
     
     
      }*/
     
      public String plusgrande(Ville ville2){
        String str = new String();
     
        if (this.nbreHabitants > ville2.getNombreHabitants())
          str = this.nomVille+" est une ville plus peuplee que "+ville2.getNom();
        if (ville2.getNombreHabitants() > this.nbreHabitants)
          str = ville2.getNom()+" est une ville plus peuplee que "+this.nomVille;
        return str;
      }
    }
    main:
    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
    26
    27
    28
    29
    30
    31
    32
    33
    import java.util.*;
     
    public class mainville {
     
      public static void main(String[] args)
      {
      String peupl;
        //Ville[] v = new Ville[0];
     
     ArrayList<Ville> villes = new ArrayList<>();
        /*Ville v1 = new Ville("Marseille", 123456, "France");      
     
       Ville v2 = new Ville("Autre Ville", 321654, "Bresil");*/
     
      //peupl = v1.laplus(v2);
       /*v[0].nomVille = "Paris";
       v[0].nomPays = "France";
       v[0].nbreHabitants = 4934;*/
     
       /*v[1].nomVille = "Londres";
       v[1].nomPays = "Angl";
       v[1].nbreHabitants = 4934;*/
     
            /*v[2].nomVille = "Rome";
            v[2].nomPays = "italie";
            v[2].nbreHabitants = 434;*/
            villes.add(maville());
     
       //System.out.println("LEL TEST "+villes.get(0).nom);
     
      }
     
    }
    Comment je fais du coup ? :/

    merci de votre aide

  2. #2
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    Un tableau doit toujours être initialisé avec une taille pour pouvoir commencer à le manipuler.

    Si tu veux un table de 100 villes, tu déclares
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Ville[] villeArray = new Ville[100];
    Le fait de le déclarer ne le remplit pas : tous les éléments de ton array sont null, donc tout appel à une méthode de l'array renverra toujours une NullPointerException tant qu'il n'y aura pas un objet dans ton array.

    En gros, ajouter des éléments avant d'essayer de les utiliser.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Ville paris = new Ville(); // déclaration d'une ville
    Ville lyon = new Ville(); // déclaration d'une autre ville
    Ville marseilles = new Ville(); // déclaration d'encore une autre ville
    villeArray[0] = paris;
    villeArray[1] = lyon ;
    villeArray[2] = marseilles;

    Et pour ta deuxième erreur, ça vient de fait que tu as fait ton copier-coller d'un truc qui ne marche pas sans savoir pourquoi apparemment.

    Si tu déclares :
    Ca veut dire que quelque part dans ton code il y a une fonction accessible qui s'appelle maville et qui n'a pas de paramètres. Ce n'est pas le cas ici.
    Je ne suis pas mort, j'ai du travail !

Discussions similaires

  1. [XL-2013] Copier des informations dans un tableau selon une référence
    Par hvegung dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/06/2015, 12h14
  2. [XL-2013] Remplacer des données dans un tableau avec une formule
    Par capnice dans le forum Excel
    Réponses: 7
    Dernier message: 23/05/2015, 22h12
  3. [POO] ajouter des données dans un tableau contenant une structure
    Par Peanut dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/02/2009, 18h41
  4. Réponses: 9
    Dernier message: 04/04/2007, 11h16
  5. Manipuler des chaînes dans un tableau
    Par cirtey dans le forum C
    Réponses: 5
    Dernier message: 01/03/2007, 22h08

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