Bonjour,
Soit un tableau de 20 octets appelé tableauCombinatoire[20].
Dans ces 20 octets sont générées différentes combinaisons de valeurs, par exemple:
- tableauCombinatoire[0] = 5
- tableauCombinatoire[1] = 3
- .
- .
- tableauCombinatoire[19] = 93
Puis, une autre combinaison est générée parmi les octets de ce tableau:
- tableauCombinatoire[0] = 121
- .
- .
- tableauCombinatoire[19] = 14
Bref, vous voyez le principe.
Je souhaiterais mémoriser chaque combinaison de 20 octets, dans un ensemble de stockage (un tableau à 2 dimensions, une ArrayList... peu importe)
Mon problème est que parfois, certaines combinaisons générées existent déjà dans la structure de stockage et n'ont donc pas besoin d'y être ajoutées de nouveau.
Il me faut donc faire un test de parcours de l'ensemble de la structure de stockage pour vérifier de ne pas y mettre un doublon.
C'est là que je me suis dit que peut être un HashSet pourrait venir à mon secours, car possédant un système anti-collision.
Sauf que tableauCombinatoire étant toujours physiquement le même tableau (il n'y a que son contenu qui change), lorsque je fais:
celui-ci n'est mis qu'une fois dans le Set. Effectivement, il y a bien un système anti-collision... mais sur l'objet tableau, pas son contenu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part monHashSetCombinatoire.add( tableauCombinatoire );
Je ne voudrais pas réinventer la roue, mais existe-t-il en JAVA, un système qui répondrait à ce besoin:
stocker des ensembles de 20 octets dans une structure, qui ne prendrait en compte un ajout que si la combinaison de 20 octets n'existe pas dans la structure ?
PS: j'ai pensé un moment passer par une conversion des 20 octets en chaîne de caractères pour faire des objets différents à chaque fois... mais je ne trouve pas cela élégant (et probablement pas efficace)
Merci
Partager