Aller au contenu
ElementaryOS France
couim

Java : ArrayList - tableau d'objets

Recommended Posts

Bonjour à tous !

 

Oui, je galère sur java... Vous commencez à le voir :D

 

Bon alors aujourd'hui je veux faire un tableau d'objet Ville

 

J'ai donc une classe Ville toute simple ici : 

 

 import java.util.Scanner;
public class Ville {
 
private static int nbHab;
private static int suPerficie;
private static String nomVille;
private static String nomPays;
Scanner entree = new Scanner(System.in);
        
public static void infoVille() {
    System.out.println(nomVille + " contient " + nbHab + " d'habitants ");
    System.out.println("La superficie : " + suPerficie );
}
//mise par défaut des valeurs pour la ville : 
public Ville() {
    nbHab = 0;
    suPerficie = 0;
    nomVille = "inconnu";
    nomPays = "inconnu";
        
}
public static String getNomVille() {
    return nomVille;
}
public static String getNomPays() {
    return nomPays;
}
public static int getSuperficie() {
    return suPerficie;
}
public static int getHab() {
    return nbHab;
}
public static void setNomVille(String nmV) {
    nomVille=nmV;
}
public static void setNomPays(String nmP) {
    nomPays=nmP;
}
public static void setNombreHab(int hab) {
    nbHab=hab;
}
public static void setSuperficie(int sup) {
    suPerficie=sup;
}
}

 

 

Et mon main ici : 

 

 import java.util.Scanner;
import java.util.ArrayList;
public class principale {
public static void main(String[] args) {
            //je déclare un tableau de type Ville
        ArrayList<Ville> tabVille;
        tabVille = new ArrayList<Ville>();
        Scanner entree = new Scanner(System.in);
        String nomVille;
        Ville uneVille = new Ville();
 
        
        for (int i=0;i<5; i++) {
            //déclaration d'une nouvelle ville
            System.out.print("entrez le nom de votre ville : ");
            nomVille=entree.nextLine();
            uneVille.setNomVille(nomVille);
            uneVille.infoVille();
            tabVille.add(uneVille);            
        }
        
        
        for (int i = 0; i<tabVille.size(); i++) {
            uneVille=tabVille.get(i);
            uneVille.infoVille();
        }
    }
 
}
 

 

Alors ya pas d'erreur de compilation, mais j'ai un problème : tous les éléments se mettent dans mon tableau, mais dans la deuxième boucle il m'affiche tout le temps la dernière ville...

 

Quelqu'un a une idée ? mon tabVille.get(i) est-il buggé ? mon tabVille.add(uneVille) est il buggé ? 

 

Voici un exemple de sortie : 

 

 

 entrez le nom de votre ville : Grenoble
Grenoble contient 0 d'habitants 
La superficie : 0
entrez le nom de votre ville : Lyon
Lyon contient 0 d'habitants 
La superficie : 0
entrez le nom de votre ville : Paris
Paris contient 0 d'habitants 
La superficie : 0
entrez le nom de votre ville : Marseille
Marseille contient 0 d'habitants 
La superficie : 0
entrez le nom de votre ville : Caen
Caen contient 0 d'habitants 
La superficie : 0
Caen contient 0 d'habitants 
La superficie : 0
Caen contient 0 d'habitants 
La superficie : 0
Caen contient 0 d'habitants 
La superficie : 0
Caen contient 0 d'habitants 
La superficie : 0
Caen contient 0 d'habitants 
La superficie : 0
 

 

Il m'affiche toujours le résultat de Caen !

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×