Méthode pour extraire toutes les clés de LinkedHashMap dans une Liste
Je suis travailler avec de nombreux LinkedHashMap
qui sont soit LinkedHashMap<Long, Long>
, LinkedHashMap<Long, Double>
ou LinkedHashMap<Long, Integer>
.
Mon objectif est de trouver ou de créer une méthode qui retourne un List<Long>
avec toutes les touches ci-dessus LinkedHashMap<Long,...>
dans le même ordre. L'ordre est important et c'est pourquoi je ne pense pas que je peux utiliser myMap.keySet()
qui est un Set<Long>
. Aussi, j'ai beaucoup d'autres méthodes qui acceptent seulement List<Long>
que l'entrée, je voudrais donc la méthode souhaitée pour retourner dans ce type d'objet pour que je puisse continuer à utiliser ces méthodes.
Écrit une méthode pour renvoyer ce pour, par exemple, un LinkedHashMap<Long, Long>
est assez facile:
private static List<Long> getLongKeys(LinkedHashMap<Long, Long> target) {
List<Long> keys = new ArrayList<Long>();
for(Map.Entry<Long, Long> t : target.entrySet()) {
keys.add(t.getKey());
}
return keys;
}
Cependant, alors j'ai besoin d'écrire presque identique méthodes, sauf pour LinkedHashMap<Long, Double>
et LinkedHashMap<Long, Integer>
.
Est-il possible que je puisse généraliser la méthode que j'ai collé à accepter les trois types: LinkedHashMap<Long, Long>
, LinkedHashMap<Long, Double>
ou LinkedHashMap<Long, Integer>
?
OriginalL'auteur user2763361 | 2013-09-21
Vous devez vous connecter pour publier un commentaire.
La
Map#keySet()
méthode pourLinkedHashMap
va retourner le jeu dans l'ordre d'insertion. Voici une citation deMap
documentation:Donc, vous n'avez pas besoin d'écrire une méthode distincte. Des méthodes comme
keySet()
etentrySet()
sera de retour les entrées dans l'ordre d'insertion.Bien, si vous voulez vraiment un
List<Keys>
, alors vous pouvez directement faire:.. où vous voulez une Liste. Vous n'avez pas besoin de la méthode.
OriginalL'auteur Rohit Jain
LinkedHashMap
's conforme de la commande s'applique à clés, les valeurs et les entrées.Vous devriez être très bien fait:
Si vous avez besoin de plus d'assurance, prendre un coup d'oeil à la le code source pour
LinkedHashMap
. La partie importante:Donc les itérateurs pour les clés, les valeurs et les entrées proviennent tous de la même source (
nextEntry()
) qui utilise la liste liée pour l'itération de l'ordre.OriginalL'auteur prunge