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

获取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());
		}*/

		/*//使用迭代器,获取key
		Iterator<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>>(){
			@Override
			public 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());
		}

	}

}
 

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 19:50:30

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

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

获取map的值主要有四种方法,这四种方法又分为两类,一类是调用map.keySet()方法来获取key和value的值,另一类则是通过map.entrySet()方法来取值,两者的区别在于,前者主要是先获取到所有的key的集合,当你需要查询value的值的时候需要通过key来查询value,后者则直接将key和value的键值对直接取出来,只用查询一次,对于那种性能更好,我觉得还是用map.entrySet()更好一点,具体请参见map.keySet()和map.EntrySet()的比较,接下

android在代码中四种设置控件背景颜色的方法(包括RGB)

转载请注明出处: http://blog.csdn.net/fth826595345/article/details/9208771  TextView tText=(TextView) findViewById(R.id.textv_name); //第1种: tText.setTextColor(android.graphics.Color.RED);//系统自带的颜色类 // 第2种: tText.setTextColor(0xffff00ff);//0xffff00ff是int类型的数据

获取金山区云存储容量值的方法

前一篇文章写的是如何获取阿里云的云存储容量方法,现在说一下金山云. 金山云的云存储是不支持sdk的,他的sdk支持面只有以下这么几项: 既然sdk这条路不好使,我们就换一个道,使用金山云提供的ks3util工具. 首先先查看机器是否有java,使用命令#java -version,得到返回值如下: 然后下载ks3util工具,使用命令#wget https://ks3-cn-beijing.ksyun.com/ks3-tools/ks3util-1.1.1-dist.zip  ,然后解压这个文件

[原创]java WEB学习笔记79:Hibernate学习之路--- 四种对象的状态,session核心方法:save()方法,persist()方法,get() 和 load() 方法,update()方法,saveOrUpdate() 方法,merge() 方法,delete() 方法,evict(),hibernate 调用存储过程,hibernate 与 触发器协同工作

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

四种获取单例的方式

项目中经常会用到单例模式,这里总结一下 1饿汉式 public class Singleton { //饿汉式 private Singleton(){ } private static Singleton singleton = new Singleton(); public static Singleton getInstance(){ return singleton; } } 2懒汉式 线程安全的 public class Singleton { //懒汉式 private Single

LVS四种负载均衡类型,十种调度方法

Lvs常用术语说明 术语 解释 Load balancer或director 负载调度器 RS或Real Server 真实服务器,提供服务的服务器 VIP 虚拟IP地址,客户端访问集群的地址 RIP 集群所提供应用程序的地址(HTTP,FTP) DIP 调度器的真实地址 Lvs的类型 Lvs-nat 他通过修改请求报文的目标地址为根据调度算法所挑选出的某RS的RIP来进行转发. 架构特性: (1)  Rs应该使用私有地址,即RIP应该为私有地址,各RS的网关必须执行DIP (2)  请求报文和

Js与Jq 获取浏览器和对象值的方法

JS and Jquery 都能获取页面元素的宽度,高度和相对位移等数值,那他们之间能相互转换或替代吗,写法又有哪些差异呢?本文将详细为你介绍. 1.Js获取浏览器高度和宽度document.documentElement.clientWidth ==> 浏览器可见区域宽度 document.documentElement.clientHeight ==> 浏览器可见区域高度 document.body.clientWidth ==> BODY对象宽度 document.body.cli

[PDF] - 获取 RadioButtonList 控件值的方法

背景 目标是通过 iTextSharp 读取 PDF 模板,填充内容后以生成新 PDF 文件.利用 福昕PDF编辑器个人版 可以获取到 RadioButtonList 的组名,但是获取不到每一个 RadioButton 的 Value,因而无法进一步对单选框控件赋值. 解决 使用 Adobe LiveCycle Designer 可以读取到 PDF 表单设计元素,找到对应的 RadioBUttonList 元素,即可找到对应的 Value. 范例 var templateFile = Path.

校验获取数据或者返回值的方法,should contain的用法

如上图,验证“首页”是否添加成功,我们就通过验证页面上是否存在“首页”这个关键字,来确认数据是否添加成功 RB的写法如上图,原理是以文本输出“首页”元素内容 且定义该内容的为“${前台一级导航名称}” 然后使用“should contain”API匹配上一部定义的内容 原文地址:https://www.cnblogs.com/becks/p/12593130.html