java的map键值类型是否固定_Java中Map根据键值(key)或者值(value)进行排序实现
我们都知道,java中的Map结构是key->value键值对存储的,而且根据Map的特性,同一个Map中 不存在两个Key相同的元素,而value不存在这个限制。换句话说,在同一个Map中Key是唯一的,而value不唯一。Map是一个接口,我们不能 直接声明一个Map类型的对象,在实际开发中,比较常用的Map性数据结构是HashMap和TreeMap,它们都是Map的直接子类。如果考虑到存取 效率的话,建议使用HashMap数据结构,而如果需要考虑到Key的顺序,建议使用TreeMap,但是TreeMap在删除、添加过程中需要排序,性能比较差。
以Key进行排序
我们可以声明一个TreeMap对象
Map map =new TreeMap();
然后往map中添加元素,可以通过输出结果,可以发现map里面的元素都是排好序的
//遍历集合
for (Iterator it = map.keySet().iterator(); it.hasNext();) {
Person person = map.get(it.next());
System.out.println(person.getId_card() +" " + person.getName());
}
我们也可以声明一个HashMap对象,然后把HashMap对象赋值给TreeMap,如下:
Map map =new HashMap();
TreeMap treemap =new TreeMap(map);
以Value进行排序
先声明一个HashMap对象:
Map map =new HashMap();
然后我们可以将Map集合转换成List集合中,而List使用ArrayList来实现如下:
List> list =
new ArrayList>(map.entrySet());
最后通过Collections.sort(List l, Comparator c)方法来进行排序,代码如下:
Collections.sort(list,new Comparator>() {
public int compare(Map.Entry o1,
Map.Entry o2) {
return (o2.getValue() - o1.getValue());
}
});
上述代码是讲map中的value按照逆序排序,如果需要按照升序进行排序的话,只需要修改o2.getValue() - o1.getValue()为o1.getValue() - o2.getValue()即可
java中map插入相同的key
测试用例: package test; import org.junit.Test; import po.Person; import java.util.HashMap; import java.u ...
java中map接口hashMap以及Enty之间的用法和关系
java中map接口hashMap以及Enty之间的转换 首先说的是map接口: Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value ...
java中Map,List与Set的差别
java中Map,List与Set的差别 java集合的主要分为三种类型: Set(集) List(列表) Map(映射) 要深入理解集合首先要了解下我们熟悉的数组: 数组是大小固定的,而且同一个数组 ...
Java中Map用法详解
java的map键值类型是否固定_Java中Map根据键值(key)或者值(value)进行排序实现相关推荐
- [你必须知道的.NET]第九回:品味类型---值类型与引用类型(中)-规则无边
发布日期:2007.5.28 作者:Anytao ©2007 Anytao.com ,原创作品,转贴请注明作者和出处. 接上回[第八回:品味类型---值类型与引用类型(上)-内存有理]的探讨,继续我们 ...
- python字典修改键所对应值_python - 将键值替换为相同字典中与不同键对应的值
我对Python脚本没有经验,但作为项目中的一项要求,我不得不构建代码,这是我遇到的问题 -python - 将键值替换为相同字典中与不同键对应的值 我有以下值的字典它来自一个UNIX脚本设置我已经在 ...
- java中map类型_Java中Map类型遍历的两种方式对比
Java中Map类型是存储键值对数据的类型,在编程过程经常使用,进行遍历操作对于每个Java程序员都不会模式,下面总结两种常用的遍历方式(一种keySet,一种entrySet),通过对比让你明白使用 ...
- java 值类型与引用类型_JAVA 关于值类型和引用类型的区别
Java中值类型和引用类型的不同? [定义] 引用类型表示你操作的数据是同一个,也就是说当你传一个参数给另一个方法时,你在另一个方法中改变这个变量的值,那么调用这个方法是传入的变量的值也将改变.值类型 ...
- java 值类型与引用类型_Java值类型和引用类型的区别
似乎"值类型和引用类型的区别"是今年面试的流行趋势,我已然是连续三次(目前总共也就三次)面试第一个问题就遇到这个了,这是多大的概率啊,100%,哈哈,我该买彩票去! 言归正传,咱还 ...
- map java 用法_java中map 9种常规用法
通常来说,Map是一个由键值对组成的数据结构,且在集合中每个键是唯一的.下面就以K和V来代表键和值,来说明一下java中关于Map的九大问题. 0.将Map转换为List类型 在java中Map接口提 ...
- java treemap 内存_Java中Map、HashMap、LinkedHashMap、TreeMap的区别
Map: Map是一个接口不能实例化,Map接口主要有两个实现类:HashMap和TreeMap类.其中,HashMap类按哈希算法来存取对象,而TreeMap类可以对键对象进行排序: Map提供了一 ...
- java map遍历_Java中Map集合的两种遍历方式
Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...
- java中两种遍历集合的方式_Java中Map集合的两种遍历方式
Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...
最新文章
- 技术:常见视频会议网络线路介绍
- String to Integer (atoi) leetcode java
- 【转】Backbone标准例子——通讯录
- int 类型的取值范围
- 非对称加解密,私钥和公钥到底是谁来加密,谁来解密?
- 写 Python 到底用什么编辑器好?鹅厂程序猿吵翻了
- Inside Spring - learning notes - Jerry Wang的Spring学习笔记
- .NET core3.0 使用Jwt保护api
- 4步教你玩转可视化大屏设计|内附实际操作
- mysql+'@'%_mysql忘记登录的人:命令拒绝用户”@’%’
- java压缩解压文件
- JAXB XML和Bean互相转换
- 如何将PNG图像转换为word文档?
- 《少有人走过的路–心智成熟的旅程》读书笔记
- Java第一天笔记01——jdk8的安装与环境变量的配置
- Android 监控APP是否在后台运行
- 【LaTeX教程】九.Latex常见数学公式模板
- zk4元年拆解_科比zk4复刻拆解测评 zk4复刻配置和元年区别是什么
- 如何在资源社区上传图标素材
- fsdb和vpd格式波形生成并查看