Comparaison tableau / HashMap :

Comme le but d'un tableau ou d'une HashMap est à peu près le même (stocker des éléments de même type et pouvoir appliquer le même traitement à tous ces éléments), il n'est pas déraisonnable de les comparer.

  1. Une HashMap est plus puissante qu’un tableaupour deux raisons :
    • Elle est extensible alors que la taille d’un tableau est fixée dès sa création.
    • L’accès aux éléments (appelés valeurs) peut se faire grâce à des clés de n’importe quel type, alors qu’on ne peut accéder aux éléments d’un tableau que par une clé entière (appelée indice).
    Du coup, lorsqu’on déclare un tableau on doit préciser sa taille (c’est-à-dire le nombre de cases) et le type de ses éléments, alors que lorsqu’on déclare une HashMap on n’a pas de taille à préciser (elle est vide au départ), mais on doit préciser le type des clés en plus du type des éléments.

    Bien entendu, tout se paye : même si vous choisissiez une clé entière pour votre HashMap, elle prendrait beaucoup plus de place qu’un tableau contenant les mêmes valeurs.

  2. Déclaration+création :
    TypeDesElements[] nomTableau = new TypeDesElements[nombreDeCases];
    HashMap<TypeDesClés,TypeDesValeurs> nomHashMap = new HashMap<TypeDesClés,TypeDesValeurs>();

  3. Remplissage (écriture) :
    nomTableau[n° de case] = valeur;
    nomHashMap.put( clé, valeur );

  4. Accès (lecture) :
    variable = nomTableau[n° de case];
    variable = nomHashMap.get( clé );

  5. Parcours complet :
    for ( int compteurEntier=0 ; compteurEntier < nomTableau.length ; compteurEntier++ )
    System.out.println( nomTableau[compteurEntier] );
    ou bien (plus simple)
    for ( TypeDesElements variablePourUnElement : nomTableau )
    System.out.println( variablePourUnElement );

    Set<TypeDesClés> ensembleDesClés = nomHashMap.keySet();
    for ( TypeDesValeurs variablePourUneValeur : ensembleDesClés )
    System.out.println( variablePourUneValeur );

  6. Facilité d'utilisation :
    Le tableau peut s'utiliser directement, alors que pour utiliser une HashMap, il faut une (voire deux) importation(s) :
    import java.util.HashMap;
    import java.util.Set;

Exemple d'utilisation des méthodes de HashMap (avec affichages) :