我们都知道,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)进行排序实现相关推荐

  1. [你必须知道的.NET]第九回:品味类型---值类型与引用类型(中)-规则无边

    发布日期:2007.5.28 作者:Anytao ©2007 Anytao.com ,原创作品,转贴请注明作者和出处. 接上回[第八回:品味类型---值类型与引用类型(上)-内存有理]的探讨,继续我们 ...

  2. python字典修改键所对应值_python - 将键值替换为相同字典中与不同键对应的值

    我对Python脚本没有经验,但作为项目中的一项要求,我不得不构建代码,这是我遇到的问题 -python - 将键值替换为相同字典中与不同键对应的值 我有以下值的字典它来自一个UNIX脚本设置我已经在 ...

  3. java中map类型_Java中Map类型遍历的两种方式对比

    Java中Map类型是存储键值对数据的类型,在编程过程经常使用,进行遍历操作对于每个Java程序员都不会模式,下面总结两种常用的遍历方式(一种keySet,一种entrySet),通过对比让你明白使用 ...

  4. java 值类型与引用类型_JAVA 关于值类型和引用类型的区别

    Java中值类型和引用类型的不同? [定义] 引用类型表示你操作的数据是同一个,也就是说当你传一个参数给另一个方法时,你在另一个方法中改变这个变量的值,那么调用这个方法是传入的变量的值也将改变.值类型 ...

  5. java 值类型与引用类型_Java值类型和引用类型的区别

    似乎"值类型和引用类型的区别"是今年面试的流行趋势,我已然是连续三次(目前总共也就三次)面试第一个问题就遇到这个了,这是多大的概率啊,100%,哈哈,我该买彩票去! 言归正传,咱还 ...

  6. map java 用法_java中map 9种常规用法

    通常来说,Map是一个由键值对组成的数据结构,且在集合中每个键是唯一的.下面就以K和V来代表键和值,来说明一下java中关于Map的九大问题. 0.将Map转换为List类型 在java中Map接口提 ...

  7. java treemap 内存_Java中Map、HashMap、LinkedHashMap、TreeMap的区别

    Map: Map是一个接口不能实例化,Map接口主要有两个实现类:HashMap和TreeMap类.其中,HashMap类按哈希算法来存取对象,而TreeMap类可以对键对象进行排序: Map提供了一 ...

  8. java map遍历_Java中Map集合的两种遍历方式

    Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...

  9. java中两种遍历集合的方式_Java中Map集合的两种遍历方式

    Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...

最新文章

  1. 技术:常见视频会议网络线路介绍
  2. String to Integer (atoi) leetcode java
  3. 【转】Backbone标准例子——通讯录
  4. int 类型的取值范围
  5. 非对称加解密,私钥和公钥到底是谁来加密,谁来解密?
  6. 写 Python 到底用什么编辑器好?鹅厂程序猿吵翻了
  7. Inside Spring - learning notes - Jerry Wang的Spring学习笔记
  8. .NET core3.0 使用Jwt保护api
  9. 4步教你玩转可视化大屏设计|内附实际操作
  10. mysql+'@'%_mysql忘记登录的人:命令拒绝用户”@’%’
  11. java压缩解压文件
  12. JAXB XML和Bean互相转换
  13. 如何将PNG图像转换为word文档?
  14. 《少有人走过的路–心智成熟的旅程》读书笔记
  15. Java第一天笔记01——jdk8的安装与环境变量的配置
  16. Android 监控APP是否在后台运行
  17. 【LaTeX教程】九.Latex常见数学公式模板
  18. zk4元年拆解_科比zk4复刻拆解测评 zk4复刻配置和元年区别是什么
  19. 如何在资源社区上传图标素材
  20. fsdb和vpd格式波形生成并查看

热门文章

  1. 残疾人能学计算机吗,残疾人学电脑
  2. UML——组件图和部署图
  3. influxdb 插入数据_脚本采集数据插入到influxdb数据库里
  4. 惠通科技冲刺深交所:年营收5亿 严旭明与张建纲为实控人
  5. 京东金融CEO陈生强:京东金融的使命是用科技创造美好未来
  6. 9名程序员被抓!接私活要注意了
  7. 如何用css把a标签的下划线去掉
  8. Computer:将视频的avi格式转换为MP4格式多种方法集合
  9. 怎么把avi格式的视频转换成gif动态图
  10. 运维面试必问的负载均衡高频面试题(2021年最新版)