【发布时间】:2020-06-04 16:21:19
【问题描述】:
所以我这里有这个方法:
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 不像一个堆栈,它一个接一个地放入;但我希望它在这种情况下。
有没有人可以按照列表的顺序将列表项添加到地图中?
提前致谢:)
【问题讨论】:
-
请注意,这对任何事情都没有用处:
pkmns = null; //Delete useless memory.
标签: java list dictionary hashmap sortedlist