Je veux quelque chose où je peux insérer des paires clé/valeur, et l'ordre est celui dans lequel j'insère les éléments.
J'ai lu des articles sur les cartes, mais il me semble que je dois écrire mon propre comparateur pour eux.
Je veux que le premier élément que j'insère soit le premier stocké, et le deuxième soit le deuxième élément de la collection, etc.
Essayez d’utiliser une LinkedHashMap
, à partir de javadocs :
Implémentation de la table avec table de hachage et liste chaînée, avec ordre d'itération prévisible Cette implémentation diffère de HashMap en ce qu'elle gère une liste doublement chaînée parcourant toutes ses entrées. Cette liste liée définit l'ordre des itérations, qui correspond normalement à l'ordre dans lequel les clés ont été insérées dans la carte (ordre d'insertion).
Pourquoi ne pas simplement créer une class
pour contenir une clé et une valeur, puis les stocker dans votre implémentation List
préférée?
class Pair {
Key k;
Value v;
}
List<Pair> stuff = new ArrayList<Pair>();
Pair p = new Pair();
...
stuff.add(p);
On dirait que vous devez utiliser une liste avec un objet nom/valeur
List<NameValuePair> values = new Arraylist<NameValuePair>();
puis utilisez la liste comme une liste normale
class NameValuePair {
private name;
private value;
... get/set
}
LinkedHashMap est le type de structure de données que vous recherchez! As étend le HashMap (qui vous permet d’avoir un élément dans la paire clé/valeur) et maintient une liste de liens (qui vous donne l’ordre d’insertion) des entrées.
Consultez également les types de cartes suivants pour plus d'informations:
https://docs.Oracle.com/javase/8/docs/api/
Allez sur AbstractMap et vérifiez-les
HashMap & TreeMap
HashTable - http://docs.Oracle.com/javase/7/docs/api/Java/util/Hashtable.html