Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2423 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Selection element liste identique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Selection element liste identique

n°1963405
tomtom293
Posté le 05-02-2010 à 16:02:26  profilanswer
 

Bonjour à tous,
 
Voila mon problème, j'ai une Liste java de String qui contient un identifiant toutes les 3 "cases" (et qui a une taille egal à un multiple de 3).
ainsi ma liste peut se presenter de ces facons la:
X X id1 X X id2 X X id3 X X id4
ou
X X id1 X X id1 X X id2 X X id2
ou encore
X X id1 X X id2 X X id2
etc...
Je souhaiterai recupere (sous la forme d'un integer) le nombre d'id différent...
ainsi par rapport à mes exemples ci dessus je devrais recuperer respectivement:
4
2
2
J'arrive à implementer une methode mais ca ne marche pas ds ts les cas, je recherche donc de l'aide pour une methode générique....
Merci bcp de votre aide,
A bientot
thomas

mood
Publicité
Posté le 05-02-2010 à 16:02:26  profilanswer
 

n°1963407
phnatomass
Je m'empare de ton esprit !!
Posté le 05-02-2010 à 16:11:56  profilanswer
 

Code :
  1. public int countID(List<String> elements)
  2. {
  3.  Set<String> idSet = new HashSet<String>();
  4.  for (String elt  : elements) {
  5.   if(elt.startsWith("id" )) {
  6.    idSet.add(elt);
  7.   }
  8.  }
  9.  return idSet.size();
  10. }

n°1963408
tomtom293
Posté le 05-02-2010 à 16:15:30  profilanswer
 

Merci de ton aide, mais a vrai dire je les ai appellé "id" pour l'exemple, il s'agit en fait d'une longue serie de chiffre aléatoire...je ne peux donc pas me baser sur la chaine de caractère "id"...de plus j'ai l'impression dans tous les cas que ta methode allait me retourner tous les "id" de la liste et pas les id distincts...

n°1963410
phnatomass
Je m'empare de ton esprit !!
Posté le 05-02-2010 à 16:20:35  profilanswer
 

Pareil  :o  

Code :
  1. public static int counterElementDistinctTouteLes3Positions(List<String> elements) {
  2.  Set<String> idSet = new HashSet<String>();
  3.  for (int i = 2; i < elements.size(); i += 3) {
  4.   String elt = elements.get(i);
  5.   idSet.add(elt);
  6.  }
  7.  return idSet.size();
  8. }

n°1963413
tomtom293
Posté le 05-02-2010 à 16:26:06  profilanswer
 

ok parfait merci...Mais quelle est donc la particularité des HashSet?

n°1963415
phnatomass
Je m'empare de ton esprit !!
Posté le 05-02-2010 à 16:28:23  profilanswer
 

T'es mignon, mais lis un peu la javadoc et fais des recherches sur Google.
Déjà que je te fais tes devoirs
 ;)

n°1963420
tomtom293
Posté le 05-02-2010 à 16:40:44  profilanswer
 

haha ok!
Je te demande un autre truc maintenant mais un peu plus compliqué si ca ne te derange pas...
En fait repartons de mes listes initiales par exemple:
Data1 Data2 id1 Data3 Data4 id2 Data5 Data6 id3 Data7 Data8 id4
ou
Data1 Data2 id1 Data3 Data4 id1 Data5 Data6 id2 Data7 Data8 id2
ou encore
Data1 Data2 id1 Data3 Data4 id2 Data5 Data6 id2
Et bien je voudrai recuperer une liste contenant respectivement:
 - id1 Data1 Data2 puis appeler une fonction avec cette liste en parametre puis id2 Data3 Data4 puis appeler une fonction avec ces parametre (donc remove des precedents par exemple)
Etc...vois tu une facon simple...?
Merci encore,
Thomas

n°1963424
phnatomass
Je m'empare de ton esprit !!
Posté le 05-02-2010 à 16:54:04  profilanswer
 

Rien compris :/

n°1963428
tomtom293
Posté le 05-02-2010 à 17:09:47  profilanswer
 

hmmm ok en gros je pars d'une liste de cette forme:
"P1" "toto" "ID1" "P2" "tati" "ID1" "P1" "tata" "ID2"
L'idee est d'appeler une methode un nombre de fois defini par ce que tu m'a decrit precedemment (cad le nombre d'id distincts) qui prend en parametre une liste (ou tableau ou autre) qui aura, dans cette exemple cette forme:
"ID1" "P1" "toto" "P2" "tati", puis de la rappeler avec cette liste:
"ID2" "P1" "tata"
Est ce que tu m'a mieux compris...?
Merci bcp,

n°1963430
TotalRecal​l
Posté le 05-02-2010 à 17:25:07  profilanswer
 

Manifestement ce que tu demandes c'est qu'on te fasse tes devoirs scolaires.  
Une fois maitrisées les notions de base du langage (ce qui est le cas si tu as compris le bout de code plus haut), à toi de te creuser la tête pour faire ce que tu veux. C'est uniquement de l'algorithmie, donc de la réflexion.
 
Donc regarde un peu la doc si tu coinces sur quelque chose, réfléchis, essaie de pondre un truc, et si vraiment tu bloques soumets nous ce que tu as déjà fait et on t'aidera.
 
Merci.


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
mood
Publicité
Posté le 05-02-2010 à 17:25:07  profilanswer
 

n°1963433
tomtom293
Posté le 05-02-2010 à 17:30:40  profilanswer
 

Alors tout d'abord je n'ai plus de devoir et crois moi j'ai mis du tps avant de poster sur ce forum...si je le fait c'est vraiment parce que je bloque.
J'ai une methode qui marche mais que dans des cas particuliers alors qu'il m'en faudrait une qui marche dans un cas general.
Merci encore

n°1963439
phnatomass
Je m'empare de ton esprit !!
Posté le 05-02-2010 à 17:41:30  profilanswer
 

Je crois que tu galères surtout parce que tu vas dans la mauvaise direction en terme d'algo.
T'as exposé 2 fois ton problème mais je ne suis pas sur de comprendre
Indique plutot en grosse mailles le besoin de ton programme car les petits bouts de code que tu demandes ressemble effectivement à des petits exercices scolaire quand on débute la programmation


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Selection element liste identique

 

Sujets relatifs
Help pour liste déroulante a choix multiplesRequete SQL de selection complexe
[Thread?] Liste de fichiersSelection, tri tableau
[PDO/SQL] Aide selection et classement (JOIN ??)Liste dans Combobox
JGraph et selection celluleBalise vidéo dans une page xHTML ? + styler liste de mots clés
Lien hypertexte dans liste déroulante[Python] [Résolu] Liste
Plus de sujets relatifs à : Selection element liste identique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR