use*_*361 15 java key hashmap map linkedhashmap
我有许多工作LinkedHashMap是要么LinkedHashMap<Long, Long>,LinkedHashMap<Long, Double>或LinkedHashMap<Long, Integer>.
我的目标是找到或创建一个方法,该方法将以相同的顺序返回List<Long>上面的所有键.排序很重要,这就是为什么我认为我不能使用哪个是.此外,我有许多其他方法只接受输入,所以我希望在该对象类型中返回所需的方法,以便我可以继续使用这些方法.LinkedHashMap<Long,...> myMap.keySet()Set<Long>List<Long>
编写一个方法来返回它,例如a LinkedHashMap<Long, Long>很容易:
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;
}
Run Code Online (Sandbox Code Playgroud)
但是,除了LinkedHashMap<Long, Double>和之外,我需要编写几乎相同的方法LinkedHashMap<Long, Integer>.
有没有什么办法可以概括我粘贴到接受所有三种类型的方法:LinkedHashMap<Long, Long>,LinkedHashMap<Long, Double>或LinkedHashMap<Long, Integer>?
Roh*_*ain 19
排序很重要,这就是为什么我不认为我可以使用myMap.keySet()这是一个Set
该Map#keySet()方法LinkedHashMap将以插入顺序返回该集合.这是Map文档中的引用:
地图的顺序定义为地图集合视图上的迭代器返回其元素的顺序.一些地图实现,比如TreeMap类,对它们的顺序做出了特定的保证; 其他人,比如HashMap类,没有.
因此,您不需要为此编写单独的方法.类似keySet()和的方法entrySet()仅返回插入顺序中的条目.
好吧,如果你真的想要一个List<Keys>,那么你可以直接做:
List<Long> keys = new ArrayList<>(target.keySet());
Run Code Online (Sandbox Code Playgroud)
..无论你想要一个List.你根本不需要这个方法.
| 归档时间: |
|
| 查看次数: |
15931 次 |
| 最近记录: |