笔者说:“ 以下代码为笔者大学期间Java的学习记录,谨以此记录我的学习历程,重要之处皆有注释,若有疑问大可评论区留言。”
Hashmap
HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。
但HashMap 是无序的,即不会记录插入的顺序。
HashMap 继承于AbstractMap,实现了 Map、Cloneable、java.io.Serializable 接口。
Hashmap排序
Hashmap的排序有许多种方法,Treemap、Arraylist等,本文将主要介绍利用Arraylist的方法。
通过Arraylist进行Hashmap的按键(key)排序或者按值(value)排序有以下步骤:
新建Arraylist并且将Hashmap中的键值对的映射转移至Arraylist中
Map.Entry<>表示Map中的一个实体(一个key-value对),它可以提供Hashmap中的键值队映射
Map.Entry里面包含getKey()和getValue()方法例:
List<Map.Entry<String,Integer>> lst =new ArrayList<Map.Entry<String, Integer>>(wordmap.entrySet()) ;
- 重写Comparator中的compare方法完成比较
Collections.sort(lst, new Comparator<Map.Entry<String, Integer>>() {
@Override
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
if(o1.getValue()>o2.getValue()) return -1;
if(o1.getValue()<o2.getValue()) return 1;
return 0;
}
});
版权声明:本文为wjhauannn原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。