Salut,
Tu peux cumuler les deux : une Map pour le tableau associatif dont la valeur est une List qui contiendra les différentes valeurs.
Si tu es sous Java 1.4 ou inférieur le plus simple serait de se faire une classe qui définira toutes les méthodes, afin d'éviter d'avoir des cast partout dans ton code, par exemple :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| public class TableauAssociatif {
private Map map = new HashMap();
public void add (Object key, Object value) {
List list = map.get(key);
if (list==null) {
list = new ArrayList();
map.put(key, list);
}
list.add(value);
}
public Object get (Object key, int index) {
Object result = null;
List list = map.get(key);
if (list!=null) {
result = list.get(index);
}
return result;
}
public int size (Object key) {
int size = 0;
List list = map.get(key);
if (list!=null) {
size = list.size();
}
return size;
}
/* ... */
} |
Avec Java 5.0 tu peux utiliser les générics qui permettent d'éviter de gérer les casts :
Map<Object,List<Object>> tableauAsociatif;
a++
Partager