这是自己的关于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集合中,关于取值和遍历的相关操作的更多相关文章

  1. 【js jQuery】map集合 循环迭代取值---以及 map、json对象、list、array循环迭代的方法和区别

    后台给前台传来一个map @ResponseBody @RequestMapping(value = "getSys") public Map<Long,String> ...

  2. C#中hashtable的赋值、取值、遍历、排序操作

    一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其 ...

  3. 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,遍历map集合

    package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import ...

  4. Java——删除Map集合中key-value值

    通过迭代器删除Map集合中的key-value值 Iterator<String> iter = map.keySet().iterator(); while(iter.hasNext() ...

  5. js实现hashtable的赋值、取值、遍历

    哈希表(Hashtable)这个概率应该是#c里面的概念,用来赋值.取值.遍历.排序操作提高效率.想起这个东西其实使我们以前经常遇到这样的面试题,一个很大的数组可能有100000个,如何快速知道它里面 ...

  6. map集合修改其中元素 去除Map集合中所有具有相同值的元素 Properties长久保存的流操作 两种用map记录单词或字母个数的方法

    package com.swift.lianxi; import java.util.HashMap; import java.util.Iterator; import java.util.Map; ...

  7. 过滤掉map集合中key或value为空的值

    package cn.com.utils; import org.apache.commons.lang3.StringUtils; import java.util.Collection; impo ...

  8. Map集合中的同一键值key重复赋值

    前言: 验证:对Map集合中的同一键值key重复赋值? 结果:对Map集合中的同一键值key重复赋值会覆盖之前的结果. 验证如下: Map<String, Object> map = ne ...

  9. Map集合中value()方法与keySet()、entrySet()区别

    http://blog.csdn.net/liu826710/article/details/9001254 在Map集合中 values():方法是获取集合中的所有的值----没有键,没有对应关系, ...

随机推荐

  1. SQL 逻辑优化 case when 转为 union all

    通常数据库的优化从硬件层面去考虑可分为4个方面: CPU:即降低计算复杂度,如减少sql各类聚合函数,窗口函数,case when等. IO :(较少查询结果集过程中对数据的访问量.数据优化很大程度从 ...

  2. Jmeter4.0版本实现背景色切换

    今天下载了Jmeter4.0新版本,看着这高大上的黑曜石般的界面,着实不适应. 尤其是在右击,希望enable和disable一个线程组时候,老眼昏花,不太看得清楚哪一个是灰色的不能点击 花了时间看了 ...

  3. 【Web页面测试】测试点和测试用例

    1. 需求符合度测试 1. 各级菜单名称显示是否按照需求说明书规定的设计,并且没有遗漏和多余 2. 各级菜单所完成的功能是否按照需求说明书规定的设计,并且没有遗漏和多余 3. 各级菜单的操作顺序和操作 ...

  4. SQL Server 远程更新目标表数据

    分享一个远程更新目标库数据的存储过程,适用于更新列名一致,主键为Int类型,可远程链接的数据库. ** 温馨提示:如需转载本文,请注明内容出处.** 本文连接:http://www.cnblogs.c ...

  5. Ubuntu本地uwsgi配Django问题的解决

    版本Ubuntu14.04,Django1.6.5 ubuntu本地Uwsgi调Django可能会报错: -- unavailable modifier requested: 0 -- 解决方法:先安 ...

  6. 华为专家谈CMDB建设

    CMDB成功的关键因素 对于CMDB项目的失败,普遍的解释是:没有数据的消费场景.工具和技术不行.流程管控不足. 从我自身的实践来看,我对此是有不同看法的.上述原因的确会影响人们使用CMDB,严重时甚 ...

  7. 蚂蚁 RPC 框架 SOFA-RPC 初体验

    前言 最近蚂蚁金服开源了分布式框架 SOFA,楼主写了一个 demo,体验了一下 SOFA 的功能,SOFA 完全兼容 SpringBoot(当然 Dubbo 也是可以兼容的). 项目地址:Alipa ...

  8. Sass快速入门学习笔记

    1. 使用变量; sass让人们受益的一个重要特性就是它为css引入了变量.你可以把反复使用的css属性值 定义成变量,然后通过变量名来引用它们,而无需重复书写这一属性值.或者,对于仅使用过一 次的属 ...

  9. 在win10下给vs2013配置opencv3.0

    opencv这玩意是真难搞呀. 先吐槽下..... 下面进入正文. 1准备工具: opencv3.0+vs2013 这里面不提供链接下载,自行谷歌百度. 2配置环境: a.打开下载好的opencv(解 ...

  10. 解决150%DPI下Photoshop不能显示成合适大小的问题

    Adobe官方这里一直不给力,只能靠自己动手了. 和解决CHM高分屏显示的步骤差不多: Ctril+R,输入regedit编辑注册表. 进入到 HKEY_LOCAL_MACHINE > SOFT ...