Map集合中,关于取值和遍历的相关操作
这是自己的关于map集合的相关操作的小研究,分享给大家。
主要代码内容包含以下:
1,map集合的遍历
2,根据key值获取value值
3,根据value值获取key值
4,返回最大value值对应的key值
5,获取最大key值,最小key值,最大value值,最小value值
上代码:
1 @Test
public void bb1(){//测试代码
Integer value=0;
Map<Integer,Integer> map=new HashMap<Integer,Integer>();
map.put(1, 12);
map.put(2, 13);
map.put(4, 11);
map.put(7, 22);
map.put(3, 55); //map集合的遍历
Iterator<Integer> i = map.keySet().iterator(); while(i.hasNext()){
Integer next = i.next();
System.out.println("key2值:"+next+"----"+"value值:"+map.get(next));//key值是自然排序的
}
System.out.println("最大值Key值"+getMaxKey(map));
System.out.println("最小值Key值"+getMinKey(map));
System.out.println("最大值val值"+getMaxVal(map));
System.out.println("根据value值获取key值:"+getKeyByVal(map,55));
System.out.println("返回最大值value对应的key值:"+getKeyByMaxValue(map,value));
System.out.println("根据key值获取对应的value值:"+getValByKey(map,1)); } /**
* 根据key值获取value值
* @param map
* @param key
* @return
*/
public static Object getValByKey(Map<Integer,Integer> map,Integer key){
Integer value=0;
for(Integer getVal:map.values()){
if(getVal==map.get(key)){
value=getVal;
}
}
return value;
}
/**
* 求最大key值
* @param map
* @return
*/
public static Object getMaxKey(Map<Integer,Integer> map){
if(map==null){
return null;
}
Set<Integer> set=map.keySet();
Object[] obj = set.toArray();
Arrays.sort(obj);//sort升序排序
return map.get(obj[obj.length-1]);//获得最大key值对应的value值
// return obj[obj.length-1];
}
/**
* 获取最大value值
* @return
*/
public static Object getMaxVal(Map<Integer,Integer> map){
if(map==null){
return null;
}
Collection<Integer> val = map.values();
Object[] obj = val.toArray();
Arrays.sort(obj);
// return obj[0];//获取最小value
return obj[obj.length-1];//获取最大value
}
/**
* 返回最小的key值
* @param map
* @return
*/
public static Object getMinKey(Map<Integer,Integer> map){
if(map==null){
return null;
}
Set<Integer> set = map.keySet();
Object[] obj = set.toArray();
Arrays.sort(obj);
return obj[0]; }
/**
* 根据value值获取对应的key值
* @return
*/
public static String getKeyByVal(Map<Integer,Integer> map,Integer value){
Integer key=0;
for(Integer getKey:map.keySet()){
if(map.get(getKey)==value){
key=getKey;//这个key值最后一个满足条件的key值
} }
return "value值为:"+value+"对应的key值为:"+key;
}
/**
* 返回最大值对应的key值
* @param map
* @param value
* @return
*/
public static Integer getKeyByMaxValue(Map<Integer,Integer> map,Integer value){
Integer maxVal =(Integer) getMaxVal(map);
value=maxVal;
Integer key=0;
for(Integer getKey:map.keySet()){
if(map.get(getKey)==value){
key=getKey;
}
}
return key;
}
欢迎批评,交流和指正,谢谢!
Map集合中,关于取值和遍历的相关操作的更多相关文章
- 【js jQuery】map集合 循环迭代取值---以及 map、json对象、list、array循环迭代的方法和区别
后台给前台传来一个map @ResponseBody @RequestMapping(value = "getSys") public Map<Long,String> ...
- C#中hashtable的赋值、取值、遍历、排序操作
一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其 ...
- 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,遍历map集合
package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import ...
- Java——删除Map集合中key-value值
通过迭代器删除Map集合中的key-value值 Iterator<String> iter = map.keySet().iterator(); while(iter.hasNext() ...
- js实现hashtable的赋值、取值、遍历
哈希表(Hashtable)这个概率应该是#c里面的概念,用来赋值.取值.遍历.排序操作提高效率.想起这个东西其实使我们以前经常遇到这样的面试题,一个很大的数组可能有100000个,如何快速知道它里面 ...
- map集合修改其中元素 去除Map集合中所有具有相同值的元素 Properties长久保存的流操作 两种用map记录单词或字母个数的方法
package com.swift.lianxi; import java.util.HashMap; import java.util.Iterator; import java.util.Map; ...
- 过滤掉map集合中key或value为空的值
package cn.com.utils; import org.apache.commons.lang3.StringUtils; import java.util.Collection; impo ...
- Map集合中的同一键值key重复赋值
前言: 验证:对Map集合中的同一键值key重复赋值? 结果:对Map集合中的同一键值key重复赋值会覆盖之前的结果. 验证如下: Map<String, Object> map = ne ...
- Map集合中value()方法与keySet()、entrySet()区别
http://blog.csdn.net/liu826710/article/details/9001254 在Map集合中 values():方法是获取集合中的所有的值----没有键,没有对应关系, ...
随机推荐
- orderBy新写法
通常,我们处理排序规则的处理方法是在sql 语句中order by create_time desc, 但是这时我们需要从控制器中一步步找到该方法,操作多. 我们试着将业务逻辑拆分到控制器 中, 把排 ...
- Java的精确整数计算-Bigdecimal学习总结和工具类
随笔:随着最近工作需要,回首需要涉及到一些精确的数据计算,就需要用到Bigdecimal,索性就趁着闲暇之余整理收集一下关于Bigdecimal的使用方法,由于时间的原因,整理的并不是特别详细,但相信 ...
- Vue作者尤雨溪:以匠人的态度不断打磨完善Vue (图灵访谈)
访谈对象: 尤雨溪,Vue.js 创作者,Vue Technology创始人,致力于Vue的研究开发. 访谈内容: 你为何选择从事前端方面的工作? 其实,我本科读的是艺术史,研究生阶段学习Design ...
- 微信小程序之获取用户位置权限(拒绝后提醒)
微信小程序获取用户当前位置有三个方式: 1. wx.getLocation(多与wx.openLocation一起用) 获取当前的精度.纬度.速度.不需要授权.当type设置为gcj02 返回可用于w ...
- AUTOSAR - 标准文档下载
官网 https://www.autosar.org/ 文档分类 按功能分 按类型分 CLASSIC PLATFORM The AUTOSAR Classic Platform architectur ...
- vue config.js配置生产环境和发布环境不同的接口地址问题
第一步,分别设置不同的接口地址 首先,我们分别找到下面的文件: /config/dev.env.js /config/prod.env.js 其实,这两个文件就是针对生产环境和发布环境设置不同参数的文 ...
- struts升级2.3.12到2.5.13
参考文章: http://www.ituring.com.cn/article/495914 http://blog.csdn.net/zhangchen1987/article/details/78 ...
- maven工程,java代码加载resources下面资源文件的路径
1 通过类加载器加载器, 1. URL resource = TestMain.class.getResource("/18500228040.txt");File file = ...
- 6个常见的php安全攻击
1.SQL注入 SQL注入是一种恶意攻击,用户利用在表单字段输入SQL语句的方式来影响正常的SQL执行.还有一种是通过system()或exec()命令注入的,它具有相同的SQL注入机制,但只针对sh ...
- Oracle-12:伪列rowid和rownum
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 伪列:不真实存储在真表中,但是我们可以查询到不能对伪列进行增删改操作! 分页可以用rownum来分!!!!!! ...