所以我这里有这个方法。
public Map<Long,Pkmn> sortByCreator(Map<Long,Pkmn> pkmns) {
Collection<Pkmn> pkmn_to_get = pkmns.values();
pkmns = null; //Delete useless memory.
List<Pkmn> pkmn_to_sort = new LinkedList<Pkmn>();
for(Pkmn pkmn : pkmn_to_get) {
pkmn_to_sort.add(pkmn);
}
Collections.sort(pkmn_to_sort);
Map<Long,Pkmn> return_map = new HashMap<Long,Pkmn>();
for(Pkmn pkmn_data : pkmn_to_sort) {
return_dex.put(pkmn_data.getId(), pkmn_data);
}
return return_dex;
}
问题是在Collections.sort(pkmn_to_sort)对数组进行排序后,下面的for循环将pkmn_data添加到Map中,但它没有被排序。
我知道Map不像一个堆栈,它是一个接一个进去的;但我希望在这种情况下,它是这样的。
有谁有办法把列表项目按照列表的顺序添加到Map中?
先谢谢了:)
HashMap本身是无序的,可以尝试用一个 LinkedHashMap
以保留相对于插入的映射的迭代顺序。