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

Java Discussion :

Tri de Vecteur


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 40
    Par défaut Tri de Vecteur
    Bonjour,
    Juste pour un conseil sur un tri, en performance.

    Donc pour faire simple, je suis en stage dans un laboratoire et je bosse sur une appli bizarrement codée. j'ai une classe qui "implements" une interface qui déclare une fonction sortByfreq.

    En gros l'instance de ma classe, c'est une Liste de vecteur. Chaque vecteur contient un String et un vecteur d'occurrences de ce String dans un texte étudié.
    Je dois trié cette liste en fonction des occurrences de chaque chaine par ordre croissant et je voudrais savoir quelle est la manière la plus performante ne prenant pas trop de mémoire qui pourrait traiter cela

    Merci d'avance

  2. #2
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Ce serait peut-être plus simple avec un ptit bout de code non? Parce que là je me représente pas très bien ton graph d'objets...

    Tu as un truc comme ça?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    List<Vector> list=...;
    et dans chaque Vector, 2 entrées, la première est une string, la deuxième un Vector?

  3. #3
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 40
    Par défaut
    Non c'est l'instance de la classe qui est un vecteur, c'est pour ça qu'il n'y a pas vraiment de code à montrer.

    mais ma classe est déclaré de la sorte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class SEGINCONTEXTSLIST extends SortableDataVector implements ClickableVector
    tout cela "extends" une classe nommé DataVector qui elle "extends" Vector

    J'espère m'être fait comprendre.
    Merci

  4. #4
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Ok... et les champs String et Vector ils sont comment?

    donne-nous un peu plus de code stp

  5. #5
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 40
    Par défaut
    Ce vecteur contient des objects de cette classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class SEGINCONTEXTS
    qui elle, a pour attribut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
         /**
          * The String representation of the segment
          */
         private String segString;
         /**
          * The list of relative OffsetPairs for each occurence of the segment
          */
         private OffsetPairList occList;
    OffsetPairList c'est mon vecteur d'occurrences.

  6. #6
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Ok... alors un comparateur de ce genre devrait faire l'affaire:

    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
     
    Comparator<SEGINCONTEXTS> comparator = new Comparator<SEGINCONTEXTS>() {
                public int compare(SEGINCONTEXTS o1, SEGINCONTEXTS o2) {
                    if((o1==null && o2==null) || o1==o2) {
                        return 0;                    
                    }
     
                    if(o1==null) {
                        return +1;
                    }
                    if(o2==null) {
                        return -1;
                    }
     
                    return o1.occList.size().compareTo(o2.occList.size());
                }
            };
    et le tri:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // Conversion vers une liste pour faire le tri (tri impossible sur des vecteurs)
    Vector<SEGINCONTEXTS> v = ...;
    List l = Arrays.asList(v.toArray(new SEGINCONTEXTS[v.size()]));
    Collections.sort(l, comparator);
    // Maintenant, la liste 'l' est triée en fonction des critères définis dans le comparator

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

Discussions similaires

  1. Tri sur vecteur
    Par degseb dans le forum Débuter
    Réponses: 4
    Dernier message: 06/07/2008, 12h04
  2. Tri d'un vecteur
    Par killer75 dans le forum C++
    Réponses: 22
    Dernier message: 30/01/2007, 19h14
  3. [Tableaux] Algorithme tri de vecteurs
    Par pelloq1 dans le forum Langage
    Réponses: 3
    Dernier message: 30/01/2007, 18h07
  4. Tri d'objets dans un vecteur
    Par Jahjouh dans le forum C++
    Réponses: 5
    Dernier message: 26/01/2006, 18h23
  5. [débutant] tri vecteur string ordre alphabétique
    Par Tom Sawyer dans le forum SL & STL
    Réponses: 2
    Dernier message: 26/07/2004, 17h40

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