欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HashMap的排序方法

程序员文章站 2022-06-05 14:17:25
...

因为Map中LinkedhashMap是有序的,所以将HashMap转化为LinkedHashMap可以实现排序

public Static Map<String,String> sortHashMap(Map<String,String> map){
    Map<String,String> sortedMap = new LinkedHashMap<String,String>();
    List<String> list = new ArrayList<String>();
    Iterator<String> item = map.keySet.iterator();
    while(item.hasNext()){
        list.add(item.next());
    }
    Collections.sort(list);
    Iterator<String> item2 = list.iterator();
    while(item2.hasNext()){
        String key = item2.next();
        sortedMap.put(key,map.get(key));
    }
    return sortedMap;
}

map.keySet 此方法获得到的是HashMap的key值的Set集合

大致步骤:

1.创建一个LinkedHashMap<String,String>集合,用来存储最终返回的有序的HashMap集合
2.创建一个ArrayList<String>集合,通过map.keySet.iterator()获得待排序HashMap集合的key值的迭代
3.迭代遍历,将key值存储在ArrayList<String>集合中
4.Collections.sort(list)ArrayList<String>集合进行排序
5.迭代遍历ArrayList<String>集合,将值赋存在key中.
sortedMap.put(key,map.get(key)); 根据key获取值,将新的键值对存在新的HashMap中