如何将排序的列表按顺序放入HashMap中?[重复]

问题描述 投票:0回答:2

所以我这里有这个方法。

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

先谢谢了:)

java list dictionary hashmap sortedlist
2个回答
1
投票

HashMap本身是无序的,可以尝试用一个 LinkedHashMap 以保留相对于插入的映射的迭代顺序。

© www.soinside.com 2019 - 2024. All rights reserved.