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 :

Suppressions de doublons et tri


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Par défaut Suppressions de doublons et tri
    Bonjour,

    j'ai écrit un programme qui a pour but de supprimer les doublons puis de trier les éléments.

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    import java.util.*;
     
    public class Unique{
        public static void suppDoublons(String [] array){
    	int i = 0;
    	int size = array.length;
    	while(i < size-1){
    	    if(array[i].equals(array[i+1])){
    		for(int j=i; j<size-1; j++)
    		    array[j] = array[j+1];
    		--size;
    		array[size] = null;
    	    }
    	    else ++i;
    	}
        }
     
        public static void lexico(String [] array){
    	List<String> list = new ArrayList<String>();
    	for(int i=0; array[i]!=null; i++)
    	    list.add(array[i]);
     
    	Collections.sort(list);
        }
     
        public static void main(String [] args){
    	for(String s : args)
    	    System.out.print(s + " ");
    	System.out.print("\n");
     
    	suppDoublons(args);
     
    	for(int i=0; args[i]!=null; i++)
    	    System.out.print(args[i] + " ");
    	System.out.print("\n");
     
    	lexico(args);
     
    	for(int i=0; args[i]!=null; i++)
    	    System.out.print(args[i] + " ");
    	System.out.print("\n");
        }
    }
    Ce que j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    java Unique un un un deux deux deux trois trois trois
    un un un deux deux deux trois trois trois
    un deux trois
    un deux trois
    Les doublons sont bien supprimés mais les éléments ne sont pas triés

  2. #2
    Membre expérimenté Avatar de hydraland
    Profil pro
    Développeur Java
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Par défaut
    Salut,
    Dans ta méthode lexico il faut que tu recopies ta liste dans ton tableau après le trie de la liste.

    A+

  3. #3
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par hydraland
    Dans ta méthode lexico il faut que tu recopies ta liste dans ton tableau après le trie de la liste.
    Ou directement trier le tableau avec Arrays.sort()...

    Sinon il est préférable de trier le tableau AVANT de rechercher les doublons...

    a++

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 43
    Par défaut
    Il existe aussi des collections qui ne permettent pas les doublons (comme Set ou HashSet par exemple), directement ...
    Après il faut que tes objets implémentent l'interface Comparable, et tu pourras trier tes tableaux avec la méthode sort ... Mais comme tu sembles vouloir trier des string elle peuvent déjà être comparées donc ca devrait aller.

Discussions similaires

  1. [XSLT 1.0] Mélange de tri sur ID et suppression de doublons par TimeStamp
    Par Invité dans le forum XSL/XSLT/XPATH
    Réponses: 13
    Dernier message: 13/12/2011, 20h55
  2. Listes : tri, suppression des doublons,"triplons" et compte
    Par yoshik dans le forum Général Python
    Réponses: 6
    Dernier message: 06/07/2009, 23h53
  3. [langage] Suppression de doublon dans tableau
    Par LFC dans le forum Langage
    Réponses: 5
    Dernier message: 15/04/2004, 14h08
  4. Requête de suppression de doublons : besoin d'aide
    Par biocorp dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/01/2004, 17h04
  5. [LG]Suppression de doublons
    Par moustique31 dans le forum Langage
    Réponses: 5
    Dernier message: 20/12/2003, 21h03

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