文档章节

将LinkedHashMap中按照名称中含有某个文字的索引大小进行排序

文文1
 文文1
发布于 2017/03/01 09:30
字数 301
阅读 39
收藏 1
点赞 0
评论 0

LinkedHashMap本身不能排序,它是按照插入的顺序来取数据的,所以这里要把一个正确排序的新的LinkedHashMap对象赋值给原来需要排序的对象:

Map<Long,String> rateStdList=new LinkedHashMap<Long,String>();
//..省略往rateStdList中添加元素的过程
List<Map.Entry<Long, String>> infoIds = new ArrayList<Map.Entry<Long, String>>(rateStdList.entrySet());  
// 按照库名中含有养护的费率库放在前面
Collections.sort(infoIds, new Comparator<Map.Entry<Long, String>>() {  
	public int compare(Map.Entry<Long, String> o1,  
			Map.Entry<Long, String> o2) {  
		return (o2.getValue().indexOf("养护")-o1.getValue().indexOf("养护"));  
	}  
});  

Map<Long,String> sortRateStdList=new LinkedHashMap<Long,String>(); 
for (int i = 0; i < infoIds.size(); i++) {  
	Entry<Long,String> ent=infoIds.get(i);  
	sortRateStdList.put(ent.getKey(),ent.getValue()) ;
};
//最后把排序号的新的LinkedHashMap赋值给原来的rateStdList 
rateStdList = sortRateStdList;

另外再给个实例:

public static void main(String[] args) {  
Map<String, Integer> map = new HashMap<String, Integer>();  
  
map.put("lisi", 5);   
map.put("lisi1", 1);   
map.put("lisi2", 3);   
map.put("lisi3", 9);   
  
List<Map.Entry<String, Integer>> infoIds = new ArrayList<Map.Entry<String, Integer>>(  
        map.entrySet());  
System.out.println("--------------排序前--------------");  
for (int i = 0; i < infoIds.size(); i++) {  
    String id = infoIds.get(i).toString();  
    System.out.println(id);  
}  
// 排序  
Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() {  
    public int compare(Map.Entry<String, Integer> o1,  
            Map.Entry<String, Integer> o2) {  
        return ( o1.getValue()-o2.getValue());  
    }  
});  
System.out.println("--------------排序后--------------");  
for (int i = 0; i < infoIds.size(); i++) {  
    Entry<String,Integer> ent=infoIds.get(i);  
    System.out.println(ent.getKey()+"="+ent.getValue());  
      
}  

 

© 著作权归作者所有

共有 人打赏支持
文文1
粉丝 19
博文 328
码字总数 113821
作品 0
长沙
程序员
HashMap,LinkedHashMap,TreeMap的区别

Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。 Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访...

浮躁的码农 ⋅ 2015/07/29 ⋅ 0

Java集合 --- LinkedHashMap底层实现和原理(源码解析)

概述 文章的内容基于JDK1.7进行分析,之所以选用这个版本,是因为1.8的有些类做了改动,增加了阅读的难度,虽然是1.7,但是对于1.8做了重大改动的内容,文章也会进行说明。 LinkedHashMap,见...

起个名忒难 ⋅ 2017/09/24 ⋅ 0

【全程干货】搜索引擎是如何建立索引的?

索引结构如果建立好了,可以提高搜素的速度,那么给定一个文档集合,索引是如何建立起来的?建立索引的方式有很多种,本文讲解比较实用的3种建立索引的方法。 两边文档遍历法 顾名思义,此方...

努力拼搏的80后 ⋅ 03/22 ⋅ 0

HashMap,LinkedHashMap,TreeMap的有序性

HashMap 是将 Key 做 Hash 算法,然后将 Hash 值映射到内存地址,直接取得 Key 所对应的数据。在 HashMap 中,底层数据结构使用的是数组,所谓的内存地址即数组的下标索引。HashMap 的高性能...

小杰java ⋅ 03/08 ⋅ 0

搜索引擎索引之如何建立索引

本文节选自《这就是搜索引擎:核心技术详解》第三章 3.4建立索引 正如前述章节所述,索引结构如果建立好了,可以增加搜索的速度,那么给定一个文档集合,索引是如何建立起来的呢?建立索引的...

晨曦之光 ⋅ 2012/02/29 ⋅ 0

android开发常用的缓存策略详解(1)- LRU缓存策略

在android开发中我们为了提升App的性能,常用到缓存策略,特别在图片加载中,为了尽可能减少网络请求,通常会采用内存缓存和硬盘缓存的对已经加载的图片进行存储,但是由于磁盘的不能能是无限...

qq_35703234 ⋅ 2017/12/19 ⋅ 0

集合(四): Map

更多实现类的源码分析请点击链接地址。。。。。。。 一: java.util.Map<k,v> Map用于保存具有映射关系的数据,因此Map集合(键值对的集合)里保存着两组值,一组值用于保存Map里的key,另外一...

牧羊人Berg ⋅ 2016/06/14 ⋅ 0

【JAVA】集合框架 学习笔记

以下是我学习java集合框架的笔记,内容主要是个人理解和网络视频、文章的摘录。 首先说一下什么是java集合框架,相信初学者刚开始听这个的时候,对于这个东西的概念是很模糊的。下面我用通俗...

qq_37792173 ⋅ 2017/09/11 ⋅ 0

Java集合:Map接口总结

一、HashMap 基于哈希表的 Map 接口的实现,允许存入 null 值和 null 键,无序存储且线程不同步; HashMap 初始容量默认为16,扩容一定是2的指数,加载因子默认值为0.75; HashMap采用Itera...

阿阿阿阿阿局 ⋅ 2016/08/08 ⋅ 0

LRU-最近最少使用算法

LRU是Least Recently Used 近期最少使用算法 1.1. 原理 LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来...

zh_iOS ⋅ 2016/11/03 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

个人博客的运营模式能否学习TMALL天猫质量为上?

心情随笔|个人博客的运营模式能否学习TMALL天猫质量为上? 中国的互联网已经发展了很多年了,记得在十年前,个人博客十分流行,大量的人都在写博客,而且质量还不错,很多高质量的文章都是在...

原创小博客 ⋅ 今天 ⋅ 0

JavaScript零基础入门——(十一)JavaScript的DOM操作

JavaScript零基础入门——(十一)JavaScript的DOM操作 大家好,欢迎回到我们的JavaScript零基础入门。最近有些同学问我说,我讲的的比书上的精简不少。其实呢,我主要讲的是我在开发中经常会...

JandenMa ⋅ 今天 ⋅ 0

volatile和synchronized的区别

volatile和synchronized的区别 在讲这个之前需要先了解下JMM(Java memory Model :java内存模型):并发过程中如何处理可见性、原子性、有序性的问题--建立JMM模型 详情请看:https://baike.b...

MarinJ_Shao ⋅ 今天 ⋅ 0

深入分析Kubernetes Critical Pod(一)

Author: xidianwangtao@gmail.com 摘要:大家在部署Kubernetes集群AddOn组件的时候,经常会看到Annotation scheduler.alpha.kubernetes.io/critical-pod"="",以表示这是一个关键服务,那你知...

WaltonWang ⋅ 今天 ⋅ 0

原子性 - synchronized关键词

原子性概念 原子性提供了程序的互斥操作,同一时刻只能有一个线程能对某块代码进行操作。 原子性的实现方式 在jdk中,原子性的实现方式主要分为: synchronized:关键词,它依赖于JVM,保证了同...

dotleo ⋅ 今天 ⋅ 0

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

lgsxp ⋅ 今天 ⋅ 0

JeeSite 4.0 功能权限管理基础(Shiro)

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

ThinkGem ⋅ 昨天 ⋅ 0

python f-string 字符串格式化

主要内容 从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快! 在本文的最后,您将了解如何以及为什么今...

阿豪boy ⋅ 昨天 ⋅ 0

Python实现自动登录站点

如果我们想要实现自动登录,那么我们就需要能够驱动浏览器(比如谷歌浏览器)来实现操作,ChromeDriver 刚好能够帮助我们这一点(非谷歌浏览器的驱动有所不同)。 一、确认软件版本 首先我们...

blackfoxya ⋅ 昨天 ⋅ 0

线性回归原理和实现基本认识

一:介绍 定义:线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。为了了解这个定义,我们先举个简单的例子;我们假设一个线性方程 Y=2x+1, x变量为商...

wangxuwei ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部