Map集合中,关于取值和遍历的相关操作

这是自己的关于map集合的相关操作的小研究,分享给大家。

主要代码内容包含以下:

1,map集合的遍历

2,根据key值获取value值

3,根据value值获取key值

4,返回最大value值对应的key值

5,获取最大key值,最小key值,最大value值,最小value值

上代码:

  1   @Test
  2     public void bb1(){//测试代码
  3         Integer value=0;
  4         Map<Integer,Integer> map=new HashMap<Integer,Integer>();
  5         map.put(1, 12);
  6         map.put(2, 13);
  7         map.put(4, 11);
  8         map.put(7, 22);
  9         map.put(3, 55);
 10
 11         //map集合的遍历
 12         Iterator<Integer> i = map.keySet().iterator();
 13
 14         while(i.hasNext()){
 15             Integer next = i.next();
 16             System.out.println("key2值:"+next+"----"+"value值:"+map.get(next));//key值是自然排序的
 17         }
 18         System.out.println("最大值Key值"+getMaxKey(map));
 19         System.out.println("最小值Key值"+getMinKey(map));
 20         System.out.println("最大值val值"+getMaxVal(map));
 21         System.out.println("根据value值获取key值:"+getKeyByVal(map,55));
 22         System.out.println("返回最大值value对应的key值:"+getKeyByMaxValue(map,value));
 23         System.out.println("根据key值获取对应的value值:"+getValByKey(map,1));
 24
 25     }
 26
 27     /**
 28      * 根据key值获取value值
 29      * @param map
 30      * @param key
 31      * @return
 32      */
 33     public static Object getValByKey(Map<Integer,Integer> map,Integer key){
 34         Integer value=0;
 35         for(Integer getVal:map.values()){
 36             if(getVal==map.get(key)){
 37                 value=getVal;
 38             }
 39         }
 40         return value;
 41     }
 42     /**
 43      * 求最大key值
 44      * @param map
 45      * @return
 46      */
 47     public static Object getMaxKey(Map<Integer,Integer> map){
 48         if(map==null){
 49             return null;
 50         }
 51             Set<Integer> set=map.keySet();
 52             Object[] obj = set.toArray();
 53             Arrays.sort(obj);//sort升序排序
 54             return map.get(obj[obj.length-1]);//获得最大key值对应的value值
 55 //        return obj[obj.length-1];
 56     }
 57     /**
 58      * 获取最大value值
 59      * @return
 60      */
 61     public static Object getMaxVal(Map<Integer,Integer> map){
 62         if(map==null){
 63             return null;
 64         }
 65         Collection<Integer> val = map.values();
 66         Object[] obj = val.toArray();
 67         Arrays.sort(obj);
 68 //        return obj[0];//获取最小value
 69         return obj[obj.length-1];//获取最大value
 70     }
 71     /**
 72      * 返回最小的key值
 73      * @param map
 74      * @return
 75      */
 76     public static Object getMinKey(Map<Integer,Integer> map){
 77         if(map==null){
 78             return null;
 79         }
 80         Set<Integer> set = map.keySet();
 81         Object[] obj = set.toArray();
 82         Arrays.sort(obj);
 83         return obj[0];
 84
 85     }
 86      /**
 87       * 根据value值获取对应的key值
 88       * @return
 89       */
 90     public static String getKeyByVal(Map<Integer,Integer> map,Integer value){
 91         Integer key=0;
 92         for(Integer getKey:map.keySet()){
 93                 if(map.get(getKey)==value){
 94                     key=getKey;//这个key值最后一个满足条件的key值
 95                 }
 96
 97         }
 98         return "value值为:"+value+"对应的key值为:"+key;
 99     }
100     /**
101      * 返回最大值对应的key值
102      * @param map
103      * @param value
104      * @return
105      */
106     public static Integer getKeyByMaxValue(Map<Integer,Integer> map,Integer value){
107         Integer maxVal =(Integer) getMaxVal(map);
108         value=maxVal;
109         Integer key=0;
110         for(Integer getKey:map.keySet()){
111             if(map.get(getKey)==value){
112                 key=getKey;
113             }
114         }
115         return key;
116     }

欢迎批评,交流和指正,谢谢!

原文地址:https://www.cnblogs.com/jincheng81/p/9017190.html

时间: 2024-10-12 03:54:52

Map集合中,关于取值和遍历的相关操作的相关文章

map集合中的键值对对象遍历

package com.day15.Map; import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set; /* * map集合中的第二种遍历方式 */public class MapFour { public static void main(String[] args) { Map<String, Integer> ma=new HashMap<>();

获取map集合中键和值的三种方式

//创建一个map集合 HashMap<String, Integer> map = new HashMap<>(); //添加元素 map.put("小王",25); map.put("小张",35); map.put("小李",20); 方法一:用增强for循环 //用keyset()方法获取所有的键 Set<String> keys = map.keySet(); for(String s:keys){

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

一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,同时key是区分大小写:value用于存储对应于key的值.Hashtable中key/value键值对均为object类型,所以Hashtable可以支持任何类型的key/value键值对. 二,哈希表的简单操作 在哈希表中添加一个key/value键值对: Hasht

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

package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Scanner;import java.util.Set; /** 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt&qu

map集合中value()、keySet()、entrySet()区别

在Map集合中 values():方法是获取集合中的所有的值----没有键,没有对应关系, KeySet():将Map中所有的键存入到set集合中.因为set具备迭代器.所有可以迭代方式取出所有的键,再根据get方法.获取每一个键对应的值. keySet():迭代后只能通过get()取key entrySet(): Set<Map.Entry<K,V>> entrySet() //返回此映射中包含的映射关系的 Set 视图. Map.Entry表示映射关系.entrySet():迭

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

http://blog.csdn.net/liu826710/article/details/9001254 在Map集合中 values():方法是获取集合中的所有的值----没有键,没有对应关系, KeySet():将Map中所有的键存入到set集合中.因为set具备迭代器.所有可以迭代方式取出所有的键,再根据get方法.获取每一个键对应的值. keySet():迭代后只能通过get()取key entrySet(): Set<Map.Entry<K,V>> entrySet(

不定长数组取值交叉遍历组合生成算法

代码例如以下: #include <stdio.h> int factor[3][4] = { {0, 1, 2, 3}, {0, 1}, {0, 1, 2}, }; int lengths[3] = {4, 2, 3}; void recurisionAccess(int factor[3][4], int lengths[3], int colum, int row) { int i = 0; int j = 0; int k = 0; int len = 0; int len_num =

Map集合中key不存在时使用toString()方法、valueOf()方法和强制转换((String))之间的区别

1.toString()方法 底层代码 public String toString() { return this; } 其返回值为String类型的字符串本身 1 Map<String, Object> params = new HashMap<String, Object>(); 2 //Map集合中没有key为1的键值对 3 String result = params.get("1").toString(); 4 if (result == null)

C#不允许在foreach循环中改变数组或集合中元素的值(注:成员的值不受影响)

C#不允许在foreach循环中改变数组或集合中元素的值(注:成员的值不受影响),如以下代码将无法通过编译. foreach (int x in myArray) { x++; //错误代码,因为改变了元素的值 Console.WriteLine(x); } 如果要让自定义的数据类型支持foreach循环,则该类型必须实现IEnumerable<T>接口,且存在对应此列表的IEnumerator<T>实现. 实际上,在.Net的底层(IL语言层面)而言, foreach (var