java中Map如何根据key的大小进行排序详解

 更新时间:2023年09月27日 11:10:05   作者:一叶扁舟在大海  
这篇文章主要给大家介绍了关于java中Map如何根据key的大小进行排序的相关资料,有时候我们业务上需要对map里面的值按照key的大小来进行排序的时候我们就可以利用如下方法来进行排序了,需要的朋友可以参考下

前言

需要对键值对(key-value)的key进行排序的时候,可以利用TreeMap来操作,TreeMap默认情况下就是按照key的大小来进行排序的(升序),所以只需要使用TreeMap来存储key-value对时,就是排好序的。想要按序取数据时,利用Iterator。

升序Demo

import java.util.Iterator;
import java.util.Map;
import java.util.Random;
import java.util.Set;
import java.util.TreeMap;
public class Main {
	public static void main(String args[]) {		
		System.out.println("kaishi");
		Random random = new Random();
		Map<Double, Integer> map = new TreeMap<Double, Integer>();
		//随机产生数据,存入到map中;默认情况下时升序的。
		for(int i=0;i<100;i++) {
			map.put(random.nextDouble()*1000,random.nextInt(1000));
		}		
		//使用Iterator来取key-value对;
		Set<Double> keySet = map.keySet();
	    Iterator<Double> iter = keySet.iterator();
	    while (iter.hasNext()) {
	        Double key = iter.next();
	        System.out.println(key + ":" + map.get(key));  //打印结果,会发现key都是按升序输出的
	        }
	}
}

降序Demo

import java.util.Iterator;
import java.util.Map;
import java.util.Random;
import java.util.Set;
import java.util.TreeMap;
import java.util.Comparator;
public class Main {
	public static void main(String args[]) {		
		System.out.println("kaishi");
		Random random = new Random();
		Map<Double, Integer> map = new TreeMap<Double, Integer>(
				new Comparator<Double>(){
        			@Override
        			public int compare(Double o1, Double o2) {
        				//利用Comparator来实现降序;
        				return (int) (o2-o1);
        			}
           });
		for(int i=0;i<100;i++) {
			map.put(random.nextDouble()*1000,random.nextInt(1000));
		}		
		Set<Double> keySet = map.keySet();
	    Iterator<Double> iter = keySet.iterator();
	    while (iter.hasNext()) {
	        Double key = iter.next();
	        System.out.println(key + ":" + map.get(key));//打印结果,会发现key都是按降序输出的
	        }
	}
}

总结 

到此这篇关于java中Map如何根据key的大小进行排序的文章就介绍到这了,更多相关java Map根据key大小排序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • cmd中javac和java使用及注意事项详解

    cmd中javac和java使用及注意事项详解

    这篇文章主要介绍了cmd中javac和java使用及注意事项详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Mybatis-Mapper.xml文件前缀详解

    Mybatis-Mapper.xml文件前缀详解

    这篇文章主要介绍了Mybatis-Mapper.xml文件前缀,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • java结合keytool如何实现非对称加密与解密详解

    java结合keytool如何实现非对称加密与解密详解

    这篇文章主要给大家介绍了关于java结合keytool如何实现非对称加密与解密的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友下面随着小编来一起学习学习吧
    2018-08-08
  • Kotlin 基础教程之异常

    Kotlin 基础教程之异常

    这篇文章主要介绍了Kotlin 基础教程之异常的相关资料,需要的朋友可以参考下
    2017-06-06
  • java9版本特性资源自动关闭的语法增强

    java9版本特性资源自动关闭的语法增强

    这篇文章主要为大家介绍了java9版本特性资源自动关闭的语法增强的详细使用说明,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • eclipse项目在IDEA中打开并运行的详细图文教程

    eclipse项目在IDEA中打开并运行的详细图文教程

    这篇文章主要给大家介绍了关于eclipse项目在IDEA中打开并运行的详细图文教程,至从使用IDEA开发工具以来,不少次有使用IDEA运行Eclipse项目或非Maven项目,所以这里给大家总结下,需要的朋友可以参考下
    2023-09-09
  • Java实现复原IP地址的方法

    Java实现复原IP地址的方法

    这篇文章主要介绍了Java实现复原IP地址的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Spring Boot 中的 @ConditionalOnBean 注解场景分析

    Spring Boot 中的 @ConditionalOnBean 注解场景分析

    本文详细介绍了Spring Boot中的@ConditionalOnBean注解的使用场景、原理和基本用法,通过多个示例,展示了如何使用该注解根据Bean是否存在来动态地注册或跳过特定的Bean,感兴趣的朋友一起看看吧
    2025-03-03
  • Java实现数据库连接池的方法

    Java实现数据库连接池的方法

    这篇文章主要介绍了Java实现数据库连接池的方法,涉及java数据库连接池的创建、连接、刷新、关闭及状态获取的常用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • Spring简明分析Bean作用域

    Spring简明分析Bean作用域

    scope用来声明容器中的对象所应该处的限定场景或者说该对象的存活时间,即容器在对象进入其 相应的scope之前,生成并装配这些对象,在该对象不再处于这些scope的限定之后,容器通常会销毁这些对象,这篇文章主要介绍了Spring中的Bean作用域,需要的朋友可以参考下
    2022-07-07

最新评论