Bonjour à tous !

Lors de mes développements, je suis souvent face à ce choix (Dois-je utiliser une Liste ou une Map ?). J'ai entendu dire que l'utilisation d'une Map est plus intéressante lorsqu'il y a un nombre d'entrées élevé. Sinon, il vaut mieux parcourir la collection. Par exemple, à partir de combien d'instances mieux vaut il utiliser le code 2 à la place du code 1 :

code 1 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class A
{
  Map<String,MyObj> myObjs = new HashMap<String,MyObj>();
 
  public MyObj getObj(String key)
  {
    return myObjs.get(key);
  }
 
  public void addObj(MyObj obj)
  {
    myObjs.put(obj.getKey(),obj);
  }
}
code 2 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class B
{
  List<MyObj> myObjs = new ArrayList<MyObj>();
 
  public MyObj getObj(String key)
  {
    for(MyObj obj : myObjs)
      if(obj.getKey().equals(key))
        return obj;
    return null;
  }
 
  public void addObj(MyObj obj)
  {
    myObjs.add(obj);
  }
}
Du point de vue de la montée en charge (au niveau des getObj() ), quelle structure vaut il mieux privilégier ?
J'aimerais savoir s'il existe des études qui ont été faites, et qui permettent de déterminer quelles sont les paramètres à prendre en compte pour décider (genre taille de la collection, taille des objets, fréquence d'accès,...)

Je pense que je ne suis pas le seul à me poser ce genre de questions, aussi j'en fait part ici.