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 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 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); } }
Du point de vue de la montée en charge (au niveau des getObj() ), quelle structure vaut il mieux privilégier ?
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); } }
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.
Partager