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 :

Itération sur une collection contenant un int et une collection<Integer>


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 3
    Par défaut Itération sur une collection contenant un int et une collection<Integer>
    Bonjour à tous,

    Je désire faire un graphe à partir d'une liste d'adjacence. Je m'entraine un peu sur l'implémentation de graphes, je débute en JAVA. Je m'excuse d'avance si mon code fait mal aux yeux et suis ouvert à toutes critiques constructives :) !

    Le problème est le suivant:
    -j'ai une classe Quartier, qui a comme attributs un int (numéro du nœuds, nommé président) et une collection d'entiers(nommée voisins).
    -je créé ma liste dans une classe Liste_adj qui est une collection de Quartiers. Je la construit à partir d'une matrice d'adjacence, oui je sais ce n'est pas malin mais j'ai envie de le faire... Donc le numéro de ma ligne de ma matrice correspond au président, et à chaque fois que sur cette ligne il y a un 1 cela veut dire que l'individu j (j ième) est un voisin.
    -Quand je fais une boucle sur ma liste cela me renvoie que JAVA ne peut pas itérer sur ma liste.

    Voici mon code:
    -La classe Quartier
    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
     
    import java.util.HashSet;
    import java.util.Set;
     
    public class Quartier {
    	private int president;
    	private Set<Integer> voisins= new HashSet<Integer>();
     
    	public Quartier(int p, Set<Integer> v) {
    		president=p;
    		voisins=v;
    	}
     
    	public String toString() {
    		return("Ville: "+president+" a comme voisins: "+voisins);
    	}
    }
    et voici la classe Liste_adj:
    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
     
    import java.util.HashSet;
    import java.util.Set;
     
    public class Liste_adj {
    	Set<Quartier> liste= new HashSet<Quartier>();
     
    	Liste_adj(Matrice m){
    		for(int i=0; i<m.tab.length; i++) {
    			Set<Integer> v=new HashSet<Integer>();
    			for(int j=0; j<m.tab.length; j++){
    				if(m.tab[i][j]==1) {
    					v.add(j);
    				}
    			}
    			//System.out.println("p= "+i+" v: "+v);
    			Quartier q=new Quartier(i, v);
    			liste.add(q);
    		}
    	}
    	public String toString() {
    		return(""+liste);
    	}
    }
    et maintenant ce que j'aimerai faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for(Quartier q: Liste_adj l){
             System.out.println(q);
    }
    même si je sais que faire ça avec le toString de Quartier suffit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println(liste_adj l);
    Merci d'avance pour votre aide,

    Cordialement,
    Toontun,
    Noob en Java :)

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Alors, le for étendu a la forme


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for(<Classe> <nom>: <instance d'Iterable>){
    }
    dans ton appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(Quartier q: Liste_adj l){
    Il y 2 classe et deux variable, ca ne va pas. Le code devrait plutôt être du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(Quartier q: taListe.getQaurtiers()){

    et il faudra rajouter à ta classe Liste_adj

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class Liste_adj {
    	Set<Quartier> liste= new HashSet<Quartier>();
            //....
            public Set<Quartier> getQuartiers() {
                return liste;
            }

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 3
    Par défaut Merci
    Merci beaucoup, ça marche très bien.
    Je ne comprends pas trop la méthode Get_Quartier... Que fait-elle?

    Pourquoi retourne-t-elle la liste?

    Cordialement,
    Tootun

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/05/2010, 18h14
  2. Passage d'une struct contenant un tableau d'une DLL vers C#
    Par morgan_2956 dans le forum C++/CLI
    Réponses: 2
    Dernier message: 03/02/2010, 09h11
  3. Réponses: 3
    Dernier message: 02/01/2010, 23h21
  4. Réponses: 2
    Dernier message: 25/04/2009, 20h46
  5. Problème avec une GUI contenant un waitbar et une image
    Par AsmaHaj dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 05/05/2007, 00h06

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