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 :

ArrayList en Java


Sujet :

Collection et Stream Java

  1. #1
    Candidat au Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 12
    Points : 4
    Points
    4
    Par défaut ArrayList en Java
    Bonsoir, comme etant debutante en java
    j'ai construit un arrayList dont les elements sont des objets de type arbre.
    je veux faire le tri de cette liste selon arbre.champs
    y a t-il une fonction predefinie qui le fait.


    merci d'avance


  2. #2
    Membre averti Avatar de Neolex
    Homme Profil pro
    Recherche emploi Securité informatique
    Inscrit en
    Avril 2011
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Recherche emploi Securité informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 243
    Points : 333
    Points
    333
    Par défaut
    Peut tu nous donner un peu de code , qu'es ce qu'est arbre.champs une string un int etc ?

  3. #3
    Candidat au Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class Arbre {
     
        private Arbre succ;
        private Arbre [] pred;
        private int Numniveau;//niveau du noeud 
        private int val;//le nom de la tache qui est 1 ou 2 ou 3
    mon champs c'est val

  4. #4
    Membre averti Avatar de Neolex
    Homme Profil pro
    Recherche emploi Securité informatique
    Inscrit en
    Avril 2011
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Recherche emploi Securité informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 243
    Points : 333
    Points
    333
    Par défaut
    Ok ,
    Donc tout d'abord ta classe Arbre doit implementer l'interface comparable .
    tu fais donc une méthode compareTo dans ta classe Arbre :

    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
    public class Arbre implements Comparable<Arbre>{
     
        private Arbre succ;
        private Arbre [] pred;
        private int Numniveau;//niveau du noeud 
        private int val;//le nom de la tache qui est 1 ou 2 ou 3
     
        public Arbre(int num) {
    		this.val = num ;
    	}
     
     
        @Override
        public int compareTo(Arbre a) {
           int resultat = 0;
           if (this.val > a.val)
              resultat = 1;
           if (this.val < a.val)
              resultat = -1;
           if (this.val == a.val)
              resultat = 0;
     
           return resultat;
        }
     
        @Override
        public String toString() {
        	return "Arbre num : " + this.val ;
        }
     }
    ensuite tu crée ton arraylist , puis tu la trie avec " Collections.sort(list); "

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	public static void main(String[] args) {
    		ArrayList<Arbre> list = new ArrayList<Arbre>();
    		list.add(new Arbre(10));
    		list.add(new Arbre(1));
    		list.add(new Arbre(22));
    		list.add(new Arbre(2));
     
    		System.out.println(list);
    		Collections.sort(list);
    		System.out.println(list);
    	}

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 15
    Points : 97
    Points
    97
    Par défaut
    en fait tu peux laisser ta classe arbre tel quel est et faire appel a une classe de tri personnalisée comme suivant :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    class Compare_tonchamps implements Comparator<Arbre>{
    	public int compare(Arbre o1,Arbre o2){
     
                return o1.tonchamps.compareTo(o2.tonchamps);
    	}
    cette classe permet de definir le champs sur lequel tu veux te baser pour faire le tri , tu peux remplacer tonchamps par n'importe quel attribut de la classe

    et ensuite il suffit juste de faire un tri comme suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Collections.sort(taListe, new Compare_tonchamps());
    et la liste sera trié selon l'attribut tonchamps



    pour ton champs val qui est int on doit d'abord l'encapsuler dans un (WRAPPER) Integer car les types primitifs ne sont pas gérée c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    class Compare_val implements Comparator<Arbre>{
    	public int compare(Arbre o1,Arbre o2){
    			Integer i = Integer.valueOf(o1.val);
    		Integer j = Integer.valueOf(o2.val);
                return i.compareTo(j);
    	}
    et pour le tri :

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

Discussions similaires

  1. Jtable et ArrayList en Java
    Par Aleatoire88 dans le forum Composants
    Réponses: 2
    Dernier message: 05/02/2013, 13h55
  2. Convertir java.util.ArrayList en java.sql.Array
    Par archer dans le forum JDBC
    Réponses: 3
    Dernier message: 13/07/2010, 10h53
  3. Afficher contenu de Arraylist dans java
    Par aminos88 dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 06/06/2009, 09h35
  4. Problème d'ArrayList en Java
    Par pymouse dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 28/04/2009, 16h42
  5. explication ArrayList en java
    Par drexlbob dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 02/02/2008, 00h54

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