-
iteration d'une liste
Bonjour,
je récupére une liste "liste1"
sachant que chaque itération "it1" de ma liste contienne 3 elements:
elem1, elem2, elem3
et sachant que le premier element "elem1" peut être répété dans plusieurs iterations;
je souhaite afficher les apparences du premier element "elem1" une seule fois comme suit:
elem1
elem2 elem3
elem2 elem3
elem1
elem2 elem3
elem2 elem3
elem2 elem3
si j'itere ma liste, j'obtient un truc du genre:
elem1 elem2 elem3
elem1 elem2 elem3
elem1 elem2 elem3
elem1 elem2 elem3
elem1 elem2 elem3
je sais toujours pas comment faire, si vous avez une idée n'hésitez pas :D
-
Je pense qu'un bout de code serait le bienvenu :)
-
Convertit ta List en Set, tu n'auras pas de doublon :)
Code:
Set<String> set = new HashSet<String>(taListeDeString);
Avec un Set, tu perds l'ordre original.
HashSet n'a pas d'ordre particulier, mais TreeSet a l'ordre du Comparable (donc ici l'ordre alphanumérique en gros).
-
merci afrikha et ®om pour vos reponses.
en fait je me suis mal exprimé, le problème n'est pas dans l'ordre, j'ai obtenu ma liste en faisant une requête sur une table, et du coup le premier champ peut apparaitre dans plusieurs iterations (peut se repeter), mais pas les champs 2 et 3, c'est exactement comme une table dans une base de données
par exemple:
pemière itération: michel 001 k258
deuxième itération: michel 045 k7893
etc...
donc en iterant, je sais pas comment je peux tester à chaque fois si j'ai déjà "michel" donc je l'afiche une seule fois et par la suite j'affiche tous les champs.
comme suis: michel
001 k258
045 k7893
par avance merci pour votre aide
-
Bonjour,
Il me semble qu'une solution est de mémoriser la valeur précédente du 1er champ.
Il faut afficher le 1er champ uniquement s'il est différent de la valeur précédente.
Les autres champs sont affichés systématiquement.