我想以相反的顺序更改LinkedHashMap中的元素。像这样:
public static void main(String[] args){
Map<String, Integer> map = new LinkedHashMap<>();
map.put("Hello", 2);
map.put("World", 1);
reverse(map);
System.out.println(map);// {Wordl=1, Hello=2}
}
public static void reverse(Map<String, Integer> map){
// Reverse my map...
}
但是我没有找到任何可以帮助我做到这一点的东西。有人可以建议如何解决吗? 谢谢。
答案 0 :(得分:1)
您可以使用以下代码以相反的顺序进行迭代:
ListIterator<Map.Entry<String, Integer>> iterator = new ArrayList<Map.Entry<String, Integer>>(map.entrySet()).listIterator(map.size());
while (iterator.hasPrevious()) {
Map.Entry<String, Integer> entry = iterator.previous();
System.out.println(entry.getValue());
}
答案 1 :(得分:0)
答案 2 :(得分:0)
//您可以使用Arraylist。这是一个实现。
public static void main(String[] args) {
Map<String, String> map = new LinkedHashMap<String, String>();
map.put("Hello", "2");
map.put("World", "1");
// create an arraylist initialized with keys of map
ArrayList keyList = new ArrayList(map.keySet());
for (int i = keyList.size() - 1; i >= 0; i--) {
// get key
String key = (String) keyList.get(i);
System.out.println("Key :: " + key);
// get value corresponding to key
String value = map.get(key);
System.out.println("Value :: " + value);
System.out.println("--------------------------------");
}
}