java如何获取map中value的最大值

 更新时间:2023年05月26日 10:27:03   作者:wuzi_uzi  
这篇文章主要介绍了java如何获取map中value的最大值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

java获取map中value最大值

  public static void main(String[] args) throws InterruptedException {
        Map<Integer, Integer> map = new HashMap<>();
        map.put(1,1);
        map.put(2,2);
        map.put(3,3);
        map.put(4,4);
        System.out.println(getMaxValue(map));
    }
    /**
     * 求Map<K,V>中Value(值)的最小值
     *
     * @param map
     * @return
     */
    public static Object getMinValue(Map<Integer, Integer> map) {
        if (map == null)
            return null;
        Collection<Integer> c = map.values();
        Object[] obj = c.toArray();
        Arrays.sort(obj);
        return obj[0];
    }
    /**
     * 求Map<K,V>中Value(值)的最大值
     *
     * @param map
     * @return
     */
    public static Object getMaxValue(Map<Integer, Integer> map) {
        if (map == null)
            return null;
        int length =map.size();
        Collection<Integer> c = map.values();
        Object[] obj = c.toArray();
        Arrays.sort(obj);
        return obj[length-1];
    }

根据value对Map进行排序得到最大值

import java.util.*;
public class treeMap {
    static String key1 ="";
    static Integer vlue1 ;
    public static void main(String [] arg){
        Map<String,Integer> map = new TreeMap<>();
        map.put("1",2);
        map.put("2",4);
        map.put("3",5);
        map.put("4",12);
        map.put("5",23);
        map.put("6",65);
        map.put("7",1);
        map.put("8",10);
       Map<String , Integer> map1 = new HashMap<>();
        map1 = sortMapByValue(map);
        for (String key : map1.keySet()) {
            key1 =key;
            vlue1=map1.get(key);
            System.out.println("key= "+ key + " and value= " + map1.get(key));
        }
        System.out.println("方位号:"+key1+"\n 距离:"+vlue1);
    }
    public static Map<String, Integer> sortMapByValue(Map<String, Integer> oriMap) {
         class MapValueComparator implements Comparator<Map.Entry<String, Integer>> {
            @Override
            public int compare(Map.Entry<String, Integer> me1, Map.Entry<String, Integer> me2) {
                return me1.getValue().compareTo(me2.getValue());
            }
        }
        if (oriMap == null || oriMap.isEmpty()) {
            return null;
        }
        Map<String, Integer> sortedMap = new LinkedHashMap<String, Integer>();
        List<Map.Entry<String, Integer>> entryList = new ArrayList<Map.Entry<String, Integer>>(
                oriMap.entrySet());
        Collections.sort(entryList, new MapValueComparator());
        Iterator<Map.Entry<String, Integer>> iter = entryList.iterator();
        Map.Entry<String, Integer> tmpEntry = null;
        while (iter.hasNext()) {
            tmpEntry = iter.next();
            sortedMap.put(tmpEntry.getKey(), tmpEntry.getValue());
        }
        return sortedMap;
    }
}

获取Map最大value以及对应的key

import  java.util.Arrays;
import  java.util.Collection;
import  java.util.HashMap;
import  java.util.Map;
import  java.util.Set;
public  class  MaxMapDemo {
public  static  void  main(String[] args) {
Map<Integer, Integer> map =  new  HashMap<Integer, Integer>();
map.put( 1 ,  8 );
map.put( 3 ,  12 );
map.put( 5 ,  53 );
map.put( 123 ,  33 );
map.put( 42 ,  11 );
map.put( 44 ,  42 );
map.put( 15 ,  3 );
System.out.println(getMaxKey(map));
System.out.println(getMaxValue(map));
}
/**
* 求Map<K,V>中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);
return  obj[obj.size()- 1 ];
}
/**
* 求Map<K,V>中Value(值)的最大值
* @param map
* @return
*/
public  static  Object getMaxValue(Map<Integer, Integer> map) {
if  (map ==  null )  return  null ;
Collection<Integer> c = map.values();
Object[] obj = c.toArray();
Arrays.sort(obj);
return  obj[obj.size()- 1 ];
}
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java利用Jackson序列化实现数据脱敏

    Java利用Jackson序列化实现数据脱敏

    这篇文章主要介绍了利用Jackson序列化实现数据脱敏,首先在需要进行脱敏的VO字段上面标注相关脱敏注解,具体实例代码文中给大家介绍的非常详细,需要的朋友可以参考下
    2021-10-10
  • Java IO之流的分类详解

    Java IO之流的分类详解

    这篇文章主要为大家介绍了Java IO之流的分类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • java使用mysql预编译语句查询优势及示例详解

    java使用mysql预编译语句查询优势及示例详解

    这篇文章主要为大家介绍了java使用mysql预编译语句的优势特点及示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Springboot+QueryDsl实现融合数据查询

    Springboot+QueryDsl实现融合数据查询

    这篇文章主要将介绍的是 Springboot 使用 QueryDsl 实现融合数据查询,文中有详细的代码讲解,对 SpringBoot Querydsl 查询操作感兴趣的朋友一起看看吧
    2023-08-08
  • Java递归遍历树形结构的实现代码

    Java递归遍历树形结构的实现代码

    这篇文章主要介绍了Java递归遍历树形结构的相关资料,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2016-03-03
  • 深入探索Java常量池

    深入探索Java常量池

    这篇文章主要介绍了深入探索Java常量池,涉及静态常量池和运行时常量池的介绍,常量池的好处,8种基本数据类型的包装类和常量池等相关内容,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Spring中IOC和AOP的核心组成架构详解

    Spring中IOC和AOP的核心组成架构详解

    这篇文章主要介绍了Spring中IOC和AOP的核心组成架构详解,本文是对Spring的2大核心功能——IoC和AOP 的总结提炼,并增加了环境profile和条件化bean的内容,篇幅较短,更像是一个大纲,或者思维导图,需要的朋友可以参考下
    2023-08-08
  • spring boot(三)之Spring Boot中Redis的使用

    spring boot(三)之Spring Boot中Redis的使用

    这篇文章主要介绍了spring boot(三)之Spring Boot中Redis的使用,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-05-05
  • Mybatis动态查询字段及表名的实现

    Mybatis动态查询字段及表名的实现

    本文主要介绍了Mybatis动态查询字段及表名的实现,通过灵活运用Mybatis提供的动态SQL功能,我们可以构建更加灵活、高效的查询语句,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2024-01-01
  • java中的实体类时间格式化

    java中的实体类时间格式化

    这篇文章主要介绍了java中的实体类时间格式化方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06

最新评论