Maniputation arralist java
Fermé
tchiko35
Messages postés
28
Date d'inscription
jeudi 27 janvier 2011
Statut
Membre
Dernière intervention
29 mai 2011
-
23 mai 2011 à 16:40
Herezia Messages postés 70 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 28 août 2014 - 25 mai 2011 à 09:46
Herezia Messages postés 70 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 28 août 2014 - 25 mai 2011 à 09:46
A voir également:
- Maniputation arralist java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java décompiler - Télécharger - Langages
7 réponses
remousse
Messages postés
299
Date d'inscription
dimanche 2 novembre 2008
Statut
Membre
Dernière intervention
20 novembre 2014
6
23 mai 2011 à 16:56
23 mai 2011 à 16:56
en gros tu veux supprimer les doublons ???
si c'est le cas je te conseille d'utiliser ce code-ci
ArrayList list = new ArrayList() ;
list.add(...);
Set set = new HashSet() ;
set.addAll(list) ;
ArrayList distinctList = new ArrayList(set) ;
si c'est le cas je te conseille d'utiliser ce code-ci
ArrayList list = new ArrayList() ;
list.add(...);
Set set = new HashSet() ;
set.addAll(list) ;
ArrayList distinctList = new ArrayList(set) ;
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
23 mai 2011 à 19:25
23 mai 2011 à 19:25
Et pourquoi ne pas utiliser tout simplement les Collections ?
import java.util.ArrayList; import java.util.Collection; public class Test { public static <E> Collection<E> sansDoublon(Collection<E> donnees, Collection<E> resultat) { for (E e : donnees) if (!resultat.contains(e)) resultat.add(e); return resultat; } public static void main(String args[]) { ArrayList<String> liste1 = new ArrayList<String>(); liste1.add("informatique"); liste1.add("informatique"); liste1.add("électricité"); liste1.add("informatique"); liste1.add("électricité"); for (String s : sansDoublon(liste1, new ArrayList<String>())) System.out.println(s); } }
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
23 mai 2011 à 19:34
23 mai 2011 à 19:34
Ou alors en reprenant l'idée de remousse :
public static <E> Collection<E> sansDoublon(Collection<E> donnees) { return new HashSet<E>(donnees); }
tchiko35
Messages postés
28
Date d'inscription
jeudi 27 janvier 2011
Statut
Membre
Dernière intervention
29 mai 2011
23 mai 2011 à 17:11
23 mai 2011 à 17:11
je te remercie pour ta reponse, mais j'ai du preciser un chose c'est que je travaille avec les ArrayList [] avec indice, et la j'arrive pas a faire marcher ton code, svp une solution pour mon cas
Merci
Merci
varfendell
Messages postés
3259
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
8 février 2020
707
23 mai 2011 à 17:23
23 mai 2011 à 17:23
Salut,
Moi je mettrais un truc de ce genre si tu utilise les arraylist comme des tableau:
Moi je mettrais un truc de ce genre si tu utilise les arraylist comme des tableau:
public class main { public static void main(String[] args) { String[] listNom = {"informatique", "informatique", "informatique", "électricité", "électricité"}; String[] listMeaning = {"2.14", "2.14", "2.14", "1.64", "1.64"}; String[] listNomSansDoublons = {}; String[] listMeaningSansDoublons = {}; for (int i = 0; i < listNom.length; i++){ boolean absent = true; String nom = listNom[i]; String meaning = listMeaning[i]; for (int j = 0; j < listNomSansDoublons.length; j++){ if (nom == listNomSansDoublons[j]){ absent = false; } } if(absent){ listNomSansDoublons[listNomSansDoublons.length] = nom; listMeaningSansDoublons[listMeaningSansDoublons.length] = meaning; } } } }
tchiko35
Messages postés
28
Date d'inscription
jeudi 27 janvier 2011
Statut
Membre
Dernière intervention
29 mai 2011
23 mai 2011 à 18:41
23 mai 2011 à 18:41
je te remercie pour la reponse, j'essaye d'appliquer ton algorithme pour mon cas, mais je vois que pour la premiere entrée dans la deuxieme boucle "for (int j = 0; j < listNomSansDoublons.length; j++){" la listNomSansDoublons[j] pointe vers le null car elle contient rien
comment faire s'il vous plait
comment faire s'il vous plait
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Herezia
Messages postés
70
Date d'inscription
mercredi 1 juillet 2009
Statut
Membre
Dernière intervention
28 août 2014
11
Modifié par Herezia le 24/05/2011 à 09:20
Modifié par Herezia le 24/05/2011 à 09:20
Une ArrayList c'est une java.util.ArrayList, c'est une classe
Un élément d'ArrayList s'obtient par .get(indice)
Visiblement tu parles de tableau, ça ne s'appelle pas ArrayList [] mais rien d'autre qu'un tableau
Tu peux produire un HashSet (aucun doublon) à partir d'un de ces tableaux primitifs :
Attention : code non testé
Un élément d'ArrayList s'obtient par .get(indice)
Visiblement tu parles de tableau, ça ne s'appelle pas ArrayList [] mais rien d'autre qu'un tableau
Tu peux produire un HashSet (aucun doublon) à partir d'un de ces tableaux primitifs :
List list = Arrays.asList(new String[] {"Informatique", "Informatique", "Electronique"}); Set set = new HashSet(); set.addAll(list);
Attention : code non testé
tchiko35
Messages postés
28
Date d'inscription
jeudi 27 janvier 2011
Statut
Membre
Dernière intervention
29 mai 2011
23 mai 2011 à 19:37
23 mai 2011 à 19:37
je vous remercie pour votre aide, c trés gentil de votre part
Herezia
Messages postés
70
Date d'inscription
mercredi 1 juillet 2009
Statut
Membre
Dernière intervention
28 août 2014
11
24 mai 2011 à 09:15
24 mai 2011 à 09:15
C'est normal, pense à mettre le sujet en résolu
varfendell
Messages postés
3259
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
8 février 2020
707
24 mai 2011 à 09:23
24 mai 2011 à 09:23
Effectivement, il faut initialiser les tableaux avant.
Ce code marche, je l'ai testé:
Ce code marche, je l'ai testé:
public class main { public static void main(String[] args) { String[] listNom = {"informatique", "informatique", "informatique", "électricité", "électricité"}; String[] listMeaning = {"2.14", "2.14", "2.14", "1.64", "1.64"}; String[] listNomSansDoublons = new String[5]; String[] listMeaningSansDoublons = new String[5]; for (int i = 0; i < listNom.length; i++){ boolean absent = true; int taille = 0; String nom = listNom[i]; String meaning = listMeaning[i]; for (int j = 0; j < listNomSansDoublons.length; j++){ if (nom == listNomSansDoublons[j]){ absent = false; } } if(absent){ listNomSansDoublons[taille] = nom; listMeaningSansDoublons[taille] = meaning; taille++; System.out.println(nom+meaning); } } } }
Herezia
Messages postés
70
Date d'inscription
mercredi 1 juillet 2009
Statut
Membre
Dernière intervention
28 août 2014
11
24 mai 2011 à 14:02
24 mai 2011 à 14:02
C'est intéressant de montrer une démarche algorithmique mais l'API Java offre des classes plus optimisées
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
24 mai 2011 à 16:17
24 mai 2011 à 16:17
Plus optimisées, plus simples, mais surtout plus génériques... après tout, c'est de l'orienté objet !
Herezia
Messages postés
70
Date d'inscription
mercredi 1 juillet 2009
Statut
Membre
Dernière intervention
28 août 2014
11
25 mai 2011 à 09:46
25 mai 2011 à 09:46
Plus simples d'utilisation oui !
Je te rejoins à 100% sur l'orientation objet, j'en ai marre de voir du procédural dans un langage aussi riche que le Java
Je te rejoins à 100% sur l'orientation objet, j'en ai marre de voir du procédural dans un langage aussi riche que le Java