J'ai besoin de convertir un HashMap<String, Object>
d'un tableau; quelqu'un pourrait-il me montrer comment c'est fait?
Réponses
Trop de publicités? hashMap.keySet().toArray(); // returns an array of keys
hashMap.values().toArray(); // returns an array of values
Modifier
Convient de noter que l'ordre des deux tableaux peuvent ne pas être les mêmes, Voir oxbow_lakes réponse pour une meilleure approche pour l'itération lorsque la paire clé/valeurs sont nécessaires.
Pour garantir le bon de commande pour chaque tableau de Clés et de Valeurs, l'utilisation de ce (les autres réponses de l'utilisation des Set
s qui n'offrent aucune garantie quant à l'ordre.
Map<String, Object> map = new HashMap<String, Object>();
String[] keys = new String[map.size()];
Object[] values = new Object[map.size()];
int index = 0;
for (Map.Entry<String, Object> mapEntry : map.entrySet()) {
keys[index] = mapEntry.getKey();
values[index] = mapEntry.getValue();
index++;
}
Une alternative à CrackerJacks suggestion, si vous voulez que la table de hachage pour maintenir l'ordre, vous pourriez envisager d'utiliser une LinkedHashMap à la place. Aussi loin que im courant c'est la fonctionnalité est identique à celle d'une table de hachage, mais il est FIFO ainsi, il maintient l'ordre dans lequel les éléments ont été ajoutés.