Partage
  • Partager sur Facebook
  • Partager sur Twitter

HashSet<String[ ]>

    23 décembre 2009 à 11:25:55

    Bonjour tout le monde,

    Les HashSet ont la particularité de ne pas pouvoir contenir deux fois le même élément, c'est ce qui m'intéresse.

    J'ai un algorithme du genre :
    Set<String[]> tab1 = new HashSet<String[]>();
    String[] tab2 = {"N", "N", "N", "N", "S", "J", "J", "J"};
    
    // A ce niveau la j'ai une boucle for qui va me sortir une permutation du tableau tab2 à chaque passage dans la boucle
    
    tab1.add(tab2); //Je sauvegarde le nouveau tableau dans tab1
    
    //fin de la boucle for
    


    Le problème c'est qu'à la sortie, mon tableau ne contient qu'un seul élément.... alors que lorsque j'utilisais exactement le même algo en remplacant le tableau de String par un ArrayList<String>() j'avais 20000 éléments...

    Est-ce que quelqu'un a une idée???

    Merci
    Victor
    • Partager sur Facebook
    • Partager sur Twitter
      23 décembre 2009 à 11:57:50

      C'est normal, n'oublie pas qu'un tableau se passe par référence, donc si tu permutes des éléments dans le tableau tu n'en crée pas un nouveau, donc à chaque fois tu ajoutes le même tableau de ton HashSet.
      Pour corriger le problème il faut refaire un nouveau tableau à chaque fois. System.ArrayCopy pourrait t'être utile, enfin tout dépense ce que tu comptes faire
      • Partager sur Facebook
      • Partager sur Twitter

      HashSet<String[ ]>

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown