bjr, je veux savoir lequel des collections occupe la place memoires (lourde cote memoire) : tableau ,vector, arralist, hashmap, set ?
Merci
bjr, je veux savoir lequel des collections occupe la place memoires (lourde cote memoire) : tableau ,vector, arralist, hashmap, set ?
Merci
Le moins de place mémoire, c'est clairement le tableau, c'est l'objet le plus simple. Les autre objets de l'api Collection java utilisent des tableaux en interne (ArrayList/Vector: tableau redimensionné avec un certaine granularité, Set: depend du set, un ou plusieurs niveaux de tableaux et des listes chainées, idem pour hasmaps)
Les Set sont des spécialisations des HashMap, pour info Ils prennent donc plus de place. Et à priori (je peux me planter), un TreeSet prend moins de place qu'un HashSet, mais est plus lent.
Faut quand même avoir des contraintes assez élevées pour se préoccuper de ce genre de choses. J'ai des ArrayList à foison et l'impact mémoire est vraiment insignifiant.
Et c'est surtout bien plus pratique à manipuler qu'un tableau.
Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
De la bonne manière de poser une question (et de répondre).
Je ne fais pas de service par MP. Merci (...de lire les règles...).
Ma page dvp.com
oui, ci vrai, mais le systeme sur lequel on travail necessite la gestion de la memoire, pour la facilité, les arraylist sont plus vite et pratique que les tableaux
Merci
Bonjour,
ArrayList, comme le dit son nom, est basée sur un tableau (array) pour stocker les éléments en interne. C'est la liste la moins gourmande en espace, par conséquent elle est recommandée pour avoir un bon compromis pratique-compact
Par contre il faut nuancer selon ce que tu veux en faire... Si cette liste va être parcourue entièrement de façon séquentielle, une LinkedList peut être plus appropriée. Niveau taille mémoire, je sais pas, mais niveau perfs y'a pas photo
Heu, tu va m'expliquer en quoi suivre un a un les noeuds d'une liste est censé être plus rapide qu'accéder à l'index d'un tableau? L'iterator de l'arraylist est tout simple, en gros il te récupère tableau[index++], alors que pour le linked list il te fait un truc genre item=item.next; je vois pas lequel est censé etre le plus rapide des deux, donc je dirais que, en fait, il faut un photo finish pour départager
Bah, ce qui permet de dire ça, ce sont les perfs (pas super optimisées) constatées ici. Mais on parle de collections très larges et de temps de parcours très court, on fait la différence au photo finish, comme tu dis.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager