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 :

Tableau multi-colonne : multi-type


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 265
    Par défaut Tableau multi-colonne : multi-type
    Bonsoir,

    débutant en Java, je rencontre un problème en ne sachant de qu'elle façon je dois organiser les données.

    Je souhaiterai stocker dans un "tableau", ou autres, des données de ce style :

    Ville/population/superficie/ et à terme pouvoir faire un tri sur un des champs.

    Quelle est la voie à suivre.

    Merci de votre aide.

  2. #2
    Membre émérite

    Profil pro
    Technicien
    Inscrit en
    Février 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2009
    Messages : 338
    Par défaut
    Bonsoir,

    Une première réponse assez simple sera de créer une classe Ville qui prendrait en propriété un nom, une population et une superficie. A cette classe, tu ajoutes un ArrayList de Ville et tu as ton tableau.
    A l'aide des Collections et d'un nouveau Comparator, les tris sur le tableau seront possibles.

    A toi de voir si cette solution répond bien à ton besoin.

    Benoit.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 265
    Par défaut
    Bonjour,

    tout d'abord merci pour ta réponse rapide.

    J'ai essayé de mettre en place quelque lignes suivant ton conseil, et je pense que cela devrait donc ressembler à ça :

    Reste à voir pour les Comparator, mais ce n'est pas gagné !!!

    Michel

    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
    import java.util.ArrayList;
    import java.util.List;
     
    public class Dev {
    	public static void main(String[] args) {
    		List<Ville> liste = new ArrayList<Ville>();
     
    		liste.add(new Ville("Paris", 1505452, 4785845));
    		liste.add(new Ville("Nantes", 8512563, 6235847));
    		liste.add(new Ville("Rennes", 8512563, 6235847));		
     
    		for (Ville s : liste) {
    			System.out.print(s.getNom() + "\t");
    			System.out.print(s.getPopulation() + "\t");
    			System.out.println(s.getSuperficie());
    		}
    	}
    }
    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
    public class Ville {
    	private String nom;
    	private int population;
    	private int superficie;
     
    	public Ville(String inNom, int inPopu, int inSuper) {
    		nom = inNom;
    		population = inPopu;
    		superficie = inSuper;
    	}
     
    	public String getNom() {
    		return nom;
    	}
     
    	public int getPopulation() {
    		return population;
    	}
     
    	public int getSuperficie() {
    		return superficie;
    	}
    }

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 265
    Par défaut
    J'ai bien rajouté cette classe, tri sur nom, mais je ne sais point comment l'appeler.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class Comparator {
    	public int compare(Object nom1, Object nom2){
     
    		String nom1Value = ((Ville)nom1).getNom();        
            String nom2Value = ((Ville)nom2).getNom();
     
            return nom1Value.compareToIgnoreCase(nom2Value);    
        }
    }

  5. #5
    Membre émérite

    Profil pro
    Technicien
    Inscrit en
    Février 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2009
    Messages : 338
    Par défaut
    Tu trouveras un exemple avec Comparator par ici :
    http://www.developpez.net/forums/d33...tri-arraylist/

    Il existe une autre méthode, avec Comparable, décrite par là :
    http://java.developpez.com/faq/java/...rierCollection

    Benoit

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 265
    Par défaut
    Bon, ben, ça fonctionne une fois lu les liens que tu m'as donné.

    Un grand merci pour cette aide.

    Ne reste plus qu'à voir plus finement les Comparator.

    Donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import java.util.Comparator;
     
    public class nameComparator implements Comparator<Ville>{
     
    	public int compare(Ville nom1, Ville nom2){
        	String nom1Value = nom1.getNom();        
            String nom2Value = nom2.getNom();
            return nom1Value.compareToIgnoreCase(nom2Value);    
        }
    }
    Appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Collections.sort(liste, new nameComparator());

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/03/2014, 02h42
  2. Graphique avec un tableau multi-multi-colonne
    Par koolway dans le forum Excel
    Réponses: 7
    Dernier message: 12/06/2009, 08h01
  3. [BP7] Multi-cpu, multi-core, multi-thread et programme Pascal
    Par Transgarp dans le forum Turbo Pascal
    Réponses: 6
    Dernier message: 07/04/2008, 18h43
  4. [VB6]Tri multi-colonnes sur tableau de structure
    Par ELGUEVEL dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 17/02/2006, 08h02
  5. un trombinoscope multi colonne en xsl
    Par philou44 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 08/10/2004, 15h38

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