2019独角兽企业重金招聘Python工程师标准>>>

获取map的值主要有四种方法,这四种方法又分为两类:

一类是调用map.keySet()方法来获取key和value的值,

另一类则是通过map.entrySet()方法来取值,

两者的区别在于,前者主要是先获取到所有的key的集合,当你需要查询value的值的时候需要通过key来查询value,

后者则直接将key和value的键值对直接取出来,只用查询一次,对于那种性能更好,我觉得还是用map.entrySet()更好一点,具体请参见map.keySet()和map.EntrySet()的比较,接下来就具体介绍一下四种遍历方法以及map里面的元素通过key或者value来比较大小并排序:

package com.sort;import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;public class Test {public static void main(String[] args) {Map<String,String> map = new HashMap<String,String>();map.put("b","4");map.put("a","5");map.put("c","3");map.put("d","5");//通过map.keySet()方法//方法一:通过得到key的值,然后获取value;/*for(String key : map.keySet()){String value = map.get(key);System.out.println(key+"  "+value);}*///使用迭代器,获取key;/*Iterator<String> iter = map.keySet().iterator();while(iter.hasNext()){String key=iter.next();String value = map.get(key);System.out.println(key+" "+value);}*///通过map.entrySet()方法//方法一:循环map里面的每一对键值对,然后获取key和value/*for(Entry<String, String> vo : map.entrySet()){vo.getKey();vo.getValue();System.out.println(vo.getKey()+"  "+vo.getValue());}*//*//使用迭代器,获取keyIterator<Entry<String,String>> iter = map.entrySet().iterator();while(iter.hasNext()){Entry<String,String> entry = iter.next();String key = entry.getKey();String value = entry.getValue();System.out.println(key+" "+value);}*///将map<String,String> 转化为ArryList,但list里面的元素为Entry<String,String>List<Entry<String,String>> list = new ArrayList<Map.Entry<String,String>>(map.entrySet());Collections.sort(list,new Comparator<Entry<String,String>>(){@Overridepublic int compare(Entry<String, String> o1,Entry<String, String> o2) {int flag = o1.getValue().compareTo(o2.getValue());if(flag==0){return o1.getKey().compareTo(o2.getKey());}return flag;}});//遍历list得到map里面排序后的元素for(Entry<String, String> en : list){System.out.println(en.getKey()+" "+en.getValue());}}}

转载于:https://my.oschina.net/u/2331760/blog/1648953

Map四种获取key和value值的方法,以及对map中的元素排序相关推荐

  1. Map 四种获取 key 和 value 值的方法,以及对 map 中的元素排序

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 获取map的值主要有四种方法,分为两类: 调用 map.keySet() 方法来获取 key ...

  2. mysql获取配置文件信息,四种获取MySQL数据库配置文件加载顺序

    简介 有时候帮人排查一下MySQL数据库问题的时候,用ps -ef查看MySQL数据库进程的时候,竟然不显示配置的相关信息. 如果想看MySQL数据库的配置,就会一头雾水,于是就特地整理了一下,4种查 ...

  3. java存储整数,用于存储整数数值的是 JAVA四种整数数据类型的取值范围分别是多少...

    JAVA四种整数数据类型的取值范围分别是多少 byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1) short的取值范围为-32768~32767,占用2个字节(-2的1 ...

  4. vue 子级拿值_vue 父组件通过$refs获取子组件的值和方法详解

    前言 在vue项目中组件之间的通讯是很常见的问题,同时也是很重要的问题,我们大致可以将其分为三种情况: 父传子:在父组件中绑定值,在子组件中用props接收 子传父:在父组件中监听一个事件,在子组件中 ...

  5. linux虚拟机怎么看var文件,一种获取Linux虚拟机内部日志的方法

    一种获取Linux虚拟机内部日志的方法 [技术领域] [0001]本发明涉及云计算管理技术领域,特别是指一种获取Linux虚拟机内部日志的方法. [背景技术] [0002]在云计算环境下,虚拟机被广泛 ...

  6. js title 单选框 获取_js简单获取表单中单选按钮值的方法

    本文实例讲述了js简单获取表单中单选按钮值的方法.分享给大家供大家参考,具体如下: HTML部分如下: bordercolor="#999999">回退类型: type=&q ...

  7. 三种获取Class类型的实例的方法

    通过Object类中的getClass()方法: 通过静态方法Class.forName("全类名"): 通过类字面常量Class.class. 三种获取Class类型的实例的方法 ...

  8. html单选按钮值的读取,js简单获取表单中单选按钮值的方法

    本文实例讲述了js简单获取表单中单选按钮值的方法.分享给大家供大家参考,具体如下: HTML部分如下: bordercolor="#999999">回退类型: type=&q ...

  9. win10运行在哪里打开_Win10在哪里卸载软件程序?Win10四种正确卸载软件或者游戏的方法...

    如今Win10系统已经是目前主流的操作系统,各个功能都十分完善了,可能熟悉Win7或者XP的朋友,刚刚开始使用Win10操作系统的一些朋友,连卸载软件程序都不知道怎么卸载,找不到地方.那么Win10在 ...

最新文章

  1. LeetCode实战:相交链表
  2. svn没有右键菜单的解决方案
  3. Android屏幕适应详解(一)
  4. NAT(修改IP包的IP或者Port) NAT穿越 keepalive包(IP包),保持映射关系
  5. 求水仙花_500万株水仙花争相绽放,这个日本小岛人少冬天还能看花!| 日本淡路岛...
  6. jps显示当前所有java进程pid
  7. 抓包工具,知道手机app上面使用的接口是哪个
  8. Redis进阶篇主从复制----哨兵模式
  9. python创建目录保存文件
  10. require,include,require_once和include_once之间的区别?
  11. Mac电脑上非常好用的英汉互译词典软件
  12. JAVA基础(3/17)-基本语法_运算符
  13. 天天生鲜商品详情页HTML+css
  14. Modbus 与 RS485 的区别与联系
  15. 基于PCL的QT开发(两个月内更新完)
  16. 迅为S5P6818核心板ARM Cortex-A53架构三星八核处理器
  17. 第二章 感受Mac 之美-惊艳从Mac 外设开始,一周后的使用感受
  18. 深入理解Arduino下的ESP8266_Non-OS_SDK API① Non-OS SDK
  19. 史上最全网址导航大全,让世上没有找不到的好东西
  20. 学python要有多少英语词汇量_学习英语到底多少词汇量够用,1年能学习到1000的词汇量吗?...

热门文章

  1. java 线程 单例_多线程单例模式
  2. javaweb jsp页面无法解析${message}
  3. jquery、javascript实现(get、post两种方式)跨域解决方法
  4. (十七)深入浅出TCPIP之UDP打洞原理
  5. Python模块(7)-SciPy 简易使用教程
  6. 含有js的英文单词_JavaScript 常用单词整理
  7. 伤肾的九个恶习及解决办法(图)
  8. C语言目录操作 (Linux/Unix)
  9. 开大你的音响,感受HTML5 Audio API带来的视听盛宴
  10. CentOS上安装Docker (图解)