Jump to content
ElementaryOS France

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 !

 

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...