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大小排序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python文件高级操作函数之文件信息获取与目录操作

    Python文件高级操作函数之文件信息获取与目录操作

    这篇文章主要介绍了Python文件高级操作函数之文件信息获取与目录操作,在Python中,内置了文件(File)对象。在使用文件对象时,首先需要通过内置的open()方法创建一个文件对象,然后通过该对象提供的方法进行一些基本文件操作,需要的朋友可以参考下
    2023-05-05
  • 浅谈Java中的LinkedHashSet哈希链表

    浅谈Java中的LinkedHashSet哈希链表

    这篇文章主要介绍了浅谈Java中的LinkedHashSet哈希链表,LinkedHashSet 是 Java 中的一个集合类,它是 HashSet 的子类,并实现了 Set 接口,与 HashSet 不同的是,LinkedHashSet 保留了元素插入的顺序,并且具有 HashSet 的快速查找特性,需要的朋友可以参考下
    2023-09-09
  • Java实现矩阵顺时针旋转90度的示例

    Java实现矩阵顺时针旋转90度的示例

    今天小编就为大家分享一篇Java实现矩阵顺时针旋转90度的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • SSH框架网上商城项目第8战之查询和删除商品类别功能实现

    SSH框架网上商城项目第8战之查询和删除商品类别功能实现

    SSH框架网上商城项目第8战之查询和删除商品类别功能实现,为项目增加功能,添加、更新、删除和查询操作,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • 200行Java代码编写一个计算器程序

    200行Java代码编写一个计算器程序

    本篇文章给大家分享的只用200行java代码,实现一个计算器程序,不仅能够计算加减乘除,还能够匹配小括号。实现代码超简单,需要的朋友参考下吧
    2017-12-12
  • Java递归算法详解(动力节点整理)

    Java递归算法详解(动力节点整理)

    Java递归算法是基于Java语言实现的递归算法。递归算法对解决一大类问题很有效,它可以使算法简洁和易于理解。接下来通过本文给大家介绍Java递归算法相关知识,感兴趣的朋友一起学习吧
    2017-03-03
  • Spring使用注解方式实现创建对象

    Spring使用注解方式实现创建对象

    这篇文章主要介绍了Spring使用注解方式实现创建对象,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2023-02-02
  • Java中跳出多重循环嵌套的三种方法

    Java中跳出多重循环嵌套的三种方法

    这篇文章主要给大家介绍了关于Java中跳出多重循环嵌套的三种方法,很多复杂的运算以及逻辑可能用到嵌套循环,但是如何跳出当前的多重嵌套循环,很多同学特别是新手都操作的不是很清楚,需要的朋友可以参考下
    2023-07-07
  • SpringBoot的WebSocket实现单聊群聊

    SpringBoot的WebSocket实现单聊群聊

    这篇文章主要为大家详细介绍了SpringBoot的WebSocket实现单聊群聊,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-02-02
  • Java中的使用及连接Redis数据库(附源码)

    Java中的使用及连接Redis数据库(附源码)

    这篇文章主要介绍了Java中的使用及连接Redis数据库(附源码),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09

最新评论