Je veux un dictionnaire (HashTable, Map, ...) qui a une clé et plusieurs valeurs.Java Dictionnaire valeur de type tuple
I.e. Je veux quelque chose comme
HashTable<Key, [value1, value2]>
Comment puis-je obtenir?
Je veux un dictionnaire (HashTable, Map, ...) qui a une clé et plusieurs valeurs.Java Dictionnaire valeur de type tuple
I.e. Je veux quelque chose comme
HashTable<Key, [value1, value2]>
Comment puis-je obtenir?
Le Je pense que moyen le plus simple:
Map<Key, List<Value>>
Si vous préférez avoir juste un tuple (paire, 3, ou ...) vous pouvez créer une classe Pair
.
class Pair<E,F, ...> {
public E one;
public F two;
...
}
Et puis utilisez un Map
comme ceci:
Map<Key, Pair<Value, Value>>
Juste stocker un tableau comme la valeur avec la longueur définie?
Que diriez-vous HashTable<Key, List<Value>>
?
Créez une nouvelle classe (non publique) pour vos valeurs ou utilisez plusieurs cartes (propably plus lentement).
Il n'y a pas une telle chose comme tuples en langage Java, donc vous pouvez utiliser quelques-unes des propositions:
Vous pouvez également créer un objet assez général: Pair.
public Pair<A,B> {
public Pair(A a, B b) {
this.a = a;
this.b = b;
}
public A a() { return a; }
public B b() { return b; }
}
ok, je pensais qu'il y avait une autre solution. Depuis que je suis nouveau à Java, j'ai pensé qu'il pourrait y avoir une structure de données qui supporte cela. – ptikobj
@pitik, je ne crois pas qu'il existe une structure de données native qui supporte cela. Je n'en ai jamais utilisé un. – jjnguy
Je recommanderais de créer une classe, en utilisant des types génériques à l'intérieur des types génériques provoque des problèmes. –