Remplir une liste par des objets
Résolu/Fermé
jojo@1989
Messages postés
3
Date d'inscription
lundi 9 janvier 2012
Statut
Membre
Dernière intervention
9 janvier 2012
-
9 janv. 2012 à 14:45
jojo@1989 Messages postés 3 Date d'inscription lundi 9 janvier 2012 Statut Membre Dernière intervention 9 janvier 2012 - 9 janv. 2012 à 21:10
jojo@1989 Messages postés 3 Date d'inscription lundi 9 janvier 2012 Statut Membre Dernière intervention 9 janvier 2012 - 9 janv. 2012 à 21:10
A voir également:
- Remplir tableau java
- Tableau croisé dynamique - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Tableau ascii - Guide
- Tableau word - Guide
3 réponses
matthoffman
Messages postés
405
Date d'inscription
lundi 24 mars 2008
Statut
Membre
Dernière intervention
22 janvier 2013
47
Modifié par matthoffman le 9/01/2012 à 15:09
Modifié par matthoffman le 9/01/2012 à 15:09
Toi ca se voit que tu viens du C ^^.
On n'utilise pas les "[]" en java, dans la javadoc tu as deja tout pleins de containers, tels que les vectors, les list, etc.
Ensuite pour savoir si ce que tu as fait est bon, rien de mieux que de tester.
Enfin je ne comprends pas pourquoi tu te fais un algo de complexite 0(2n) alors que tu pourrais en faire un en complexite 0(n) ..
En gros pourquoi tu fais pas juste ca:
On n'utilise pas les "[]" en java, dans la javadoc tu as deja tout pleins de containers, tels que les vectors, les list, etc.
Ensuite pour savoir si ce que tu as fait est bon, rien de mieux que de tester.
Enfin je ne comprends pas pourquoi tu te fais un algo de complexite 0(2n) alors que tu pourrais en faire un en complexite 0(n) ..
En gros pourquoi tu fais pas juste ca:
ArrayList<User> list = new ArrayList<User>(); for(int i=0;i<nbr;i++){ list.add(new User()); }
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
9 janv. 2012 à 15:44
9 janv. 2012 à 15:44
Si tu fais comme ça, ta liste va contenir deux fois les éléments du tableau.
Une première fois car tu appelles ton constructeur avec Arrays.asList(user) en paramètre
Puis une deuxième fois avec la boucle for qui ajoute les éléments un à un.
Une première fois car tu appelles ton constructeur avec Arrays.asList(user) en paramètre
Puis une deuxième fois avec la boucle for qui ajoute les éléments un à un.
jojo@1989
Messages postés
3
Date d'inscription
lundi 9 janvier 2012
Statut
Membre
Dernière intervention
9 janvier 2012
9 janv. 2012 à 21:10
9 janv. 2012 à 21:10
salut, oui je vois merci bcp
jojo@1989
Messages postés
3
Date d'inscription
lundi 9 janvier 2012
Statut
Membre
Dernière intervention
9 janvier 2012
9 janv. 2012 à 21:07
9 janv. 2012 à 21:07
Tout d'abord merci a vous tous pour le temps que vous m'avez accorder, et merci pour la solution c'est ce que je cherchais, (i'm happy)... c'est mon premier programme ou j'utilise les listes.
9 janv. 2012 à 15:37
9 janv. 2012 à 15:41
Non j'ai dit qu'il n'y avait aucune utilite a utiliser ca, quand toute une batterie de structure bien plus puissante est deja disponible.
Je t'en prie, cite moi un exemple ou les [] sont plus utiles qu'une liste, un vector, etc. ?
Modifié par KX le 9/01/2012 à 16:03
Exemple : la consommation en mémoire d'une liste de wrapper (Character, Integer...) est bien plus importante que la consommation en mémoire d'un tableau de types primitifs (char, int...)
Cas extrème : le byte taille 1 octet, donc un tableau de N bytes taille N+4 octets (4 c'est la taille de l'objet tableau), une List<Byte> va au minimum faire du 5N+4 octets (5 c'est les 4 octets de l'objet Byte, plus l'octet du byte primitif). Perte de mémoire : facteur 5 !!!
Et encore je ne parle pas des machines 64 bits, où chaque objet taille 8 octets...
Si tu ne les vois pas, les tableaux sont partout en Java. Exemple : un String en interne c'est un char[], c'est d'ailleurs pour ça qu'ils sont immuables, c'est parce que les tableaux le sont aussi...
Remarque au passage : Vector et ArrayList c'est la même chose à part que le premier utilise un mécanisme de sécurité multi-thread qui ne te servira à rien dans 99% des cas mais qui alourdira inutilement ton programme !
Ce n'est pas parce qu'on code en Java qu'il faut faire fi des optimisations, bien au contraire, quand tu vois les monstruosités que l'on peut obtenir avec trois fois rien !
Modifié par matthoffman le 9/01/2012 à 16:39
Je m'attendais a cet argument, mais alors dans ce cas dis moi:
tu fais tout toi meme quand tu codes en java alors, et tu n'utilises rien de ce qui est fournit dans la javadoc? (ba oui tout ce qui est implantation de structure etc, tu n'utilises pas toutes les fonctionnalites des structures en general, sans compter les appels de fonctions, et declaration d'attributs et methodes qui coutent en espace memoire).
A partir du moment ou tu utilises du haut niveau, tu penses FORCEMENT pas optimise, alors ton discours est bien beau, mais n'est pas valable pour du java .... Desole
(Attention: Je n'ai pas dit qu'il fallait coder comme un porc pour autant hein !)
En ce qui concerne les utilisations Vector et List, non ce n'est pas la meme chose (mais la encore tu n'as pas comris que je parlais d'utilite)... Je vais pas lui dire d'utiliser un TreeMap alors qu'il n'a besoin que d'une liste ...
Enfin bref. Ne polluons pas son topic, il a eu sa reponse.
9 janv. 2012 à 17:19
Regarde ton téléphone portable, ton GPS, etc... J2ME est partout !
Dire que les tableaux ne s'utilisent pas en Java est une aberration monstre !
Avant de faire des classes de haut niveau qui utilisent à fond l'orienté objet, il faut une base solide, et cela passe par des classes de plus bas niveau dont les opérations élémentaires sont optimisées !
Mais tu as raison sur un point cette discussion est totalement hors-sujet par rapport au topic.