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>?

new ArrayList<Long>(la cible.keySet());

OriginalL'auteur user2763361 | 2013-09-21