IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

List contre Map


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 469
    Par défaut List contre Map
    J'ai des objets identifiés par un integer, index. Cependant ces integer ne sont pas forcément consécutifs (25000 objets pour des index qui vont jusqu'à 350000). Vaut-il mieux utiliser une List et insérer un objet par son index add(index,objet) ou une HashMap et utiliser l'index comme clé put((Integer) index,objet) ?
    Je précise que les index sont uniques.

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Essaye d'insérer un objet dans une list avec un index qui n'est pas contigu aux autres et tu auras ta solution...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ArrayList list = new ArrayList();
    list.add(0,new Integer(333));
    list.add(5,new Integer(333));
    list.add(9,new Integer(333));
    list.add(11,new Integer(333));
    list.add(12,new Integer(333));
    ca va te donner un beau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 5, Size: 1
    Quoiqu'il en soit, si ton but c'est une fois stocké en mémoire de pouvoir retrouver les objets a partir d'un index, alors utilise une map.

    Sinon un peu de lecture pas inutile : http://fmora.developpez.com/tutoriel.../introduction/
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 469
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Essaye d'insérer un objet dans une list avec un index qui n'est pas contigu aux autres et tu auras ta solution...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ArrayList list = new ArrayList();
    list.add(0,new Integer(333));
    list.add(5,new Integer(333));
    list.add(9,new Integer(333));
    list.add(11,new Integer(333));
    list.add(12,new Integer(333));
    ca va te donner un beau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 5, Size: 1
    Oui en effet j'aurai du commencer par ça ...

    Quoiqu'il en soit, si ton but c'est une fois stocké en mémoire de pouvoir retrouver les objets a partir d'un index, alors utilise une map.
    C'est exactement ce que je veux faire

    Sinon un peu de lecture pas inutile : http://fmora.developpez.com/tutoriel.../introduction/
    J'ai déjà lu cela (et même plusieurs fois) mais ça n'apparaissait pas nettement qu'un HashMap était plus intéressant qu'une List pour ce que je voulais faire. D'autant que j'étais pour le moment sur un problème de parcours des valeurs du HashMap. J'ai bien sûr lu ce qui concerne les parcours d'un HsahMap mais évidemment ça parait plus compliqué que de parcourir une liste, d'où ma question.

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Non ce n'est pas si compliqué que ca de parcourir la hashmap, si d'aventure tu devais en avoir cet usage.

    Exemple : http://www.developpez.net/forums/d30...-hashmap-java/
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Convertir une List en Map
    Par Silver76 dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 07/12/2010, 09h47
  2. JDK 7: Proposition 9 : Notation de tableau pour List et Map -> Intégrée
    Par vbrabant dans le forum Collection et Stream
    Réponses: 58
    Dernier message: 03/09/2009, 15h35
  3. Réponses: 4
    Dernier message: 14/11/2008, 10h06
  4. vector ou list ou map ?
    Par faten7 dans le forum SL & STL
    Réponses: 14
    Dernier message: 15/08/2008, 23h41
  5. template list pair map
    Par blackfiever dans le forum Langage
    Réponses: 6
    Dernier message: 01/01/2008, 18h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo