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大小排序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Spring Boot基础学习之Mybatis操作中使用Redis做缓存详解
这篇文章主要给大家介绍了关于Spring Boot基础学习之Mybatis操作中使用Redis做缓存的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用spring boot具有一定的参考学习价值,需要的朋友们下面来一起看看吧2018-11-11
Java捕获ThreadPoolExecutor内部线程异常的四种方法
这篇文章主要为大家详细介绍了Java捕获ThreadPoolExecutor内部线程异常的四种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下2025-03-03
基于Java的度分秒坐标转纯经纬度坐标的漂亮国基地信息管理的方法
本文以java语言为例,详细介绍如何管理漂亮国的基地信息,为下一步全球的空间可视化打下坚实的基础,首先介绍如何对数据进行去重处理,然后介绍在java当中如何进行度分秒位置的转换,最后结合实现原型进行详细的说明,感兴趣的朋友跟随小编一起看看吧2024-06-06
Spring+SpringMVC+MyBatis深入学习及搭建(三)之MyBatis全局配置文件解析
这篇文章主要介绍了Spring+SpringMVC+MyBatis深入学习及搭建(三)之MyBatis全局配置文件解析,需要的朋友可以参考下2017-05-05


最新评论