手写HashMap排序
/*** @author zhongxia creat by 2018/12/17 21:36* @info 写注释,认真* @motto 努力不会徒劳,爱不会凑巧*/
public class HashMapTest {public static void main(String[] args) {HashMap<Integer,User> hashMap = new HashMap<>();hashMap.put(1,new User("张三",25));hashMap.put(2,new User("李四",22));hashMap.put(3,new User("王五",18));hashMap.put(4,new User("tom",24));hashMap.put(5,new User("jack",20));hashMap.put(6,new User("lucy",19));hashMap.put(7,new User("bob",17));System.out.println(hashMap);HashMap<Integer, User> map = hashMapSort(hashMap);System.out.println(map);}public static HashMap<Integer,User> hashMapSort( HashMap<Integer,User> map){//首先拿到map的键值对集合Set<Map.Entry<Integer, User>> entries = map.entrySet();//将set集合转化为List,使用集合类的sort排序方法List<Map.Entry<Integer, User>> list = new ArrayList<>(entries);//使用Conllections集合工具类对list进行排序,排序规则使用匿名内部类实现Collections.sort(list, new Comparator<Map.Entry<Integer, User>>() {@Overridepublic int compare(Map.Entry<Integer, User> o1, Map.Entry<Integer, User> o2) {
// return o2.getValue().getAge()-o1.getValue().getAge(); //年龄从大到小排序return o1.getValue().getAge()-o2.getValue().getAge(); //年龄从小到大排序}});LinkedHashMap<Integer, User> hashMap = new LinkedHashMap<>();for (Map.Entry<Integer,User> entry:list){hashMap.put(entry.getKey(),entry.getValue());}HashMap<Integer, User> integerUserHashMap = new HashMap<>();Collections.synchronizedMap(integerUserHashMap);return hashMap;}
}
纯手写点个赞!
手写HashMap排序相关推荐
- 自己手写HashMap——红黑树的Java实现
0.引言 (1)HashMap简单介绍 你好,这篇文章是<自己手写HashMap>的第一篇. 在java7之前,HashMap是用数组(hash桶)+链表的形式实现的,大概的原理就是对ke ...
- Java手写Hashmap(HashMap的基本用法)
一:引言 HashMap是Map的实现类,其方法都可以继承Map,不用手写,本篇只是为了了解底层代码和复习java基础敲得码 二:上码 package cn.wyj.two;public class ...
- 手写HashMap,快手面试官直呼内行
手写HashMap?这么狠,面试都卷到这种程度了? 第一次见到这个面试题,是在某个不方便透露姓名的Offer收割机大佬的文章: 这--我当时就麻了,我们都知道HashMap的数据结构是数组+链表+红黑 ...
- 面试表演了手写HashMap,把面试官给秀到了
手写HashMap?这么狠,面试都卷到这种程度了? 第一次见到这个面试题,是在某个不方便透露姓名的Offer收割机大佬的文章: 手写HashMap,快手一面卒 这--我当时就麻了,我们都知道HashM ...
- 手写Hashmap第二版
在第一版的基础上,如果需要实现线程安全,需要在增加.删除.扩容的时候加锁.扩容的时候,需要对整个数组加锁.增加和删除的时候,只需要对链表的头结点进行加锁.具体实现代码如下: package www.d ...
- 内含扩容源码的面试题,目标是手写HashMap!
基础知识 说说List.Set.Map三者的区别 List(对付顺序的好帮手):List接口存储一组不唯一(可以用多个元素引用相同的对象),有序的对象. Set(注重第一无二的性质):不允许重复的集合 ...
- 手写HashMap及测试
MyHashMap: /* 手动实现一个HashMap(根据JDK 1.7, 数组 + 链表)规定key和value都不能是null,但是JDK 1.7允许key和value为null.*/publi ...
- 手写基础排序及查找算法
目录 冒泡排序 插入排序 选择排序 快速排序 归并排序 二分查找 冒泡排序 void bubble_sort(int a[],int n){int t;for(int i=n-1;i>=0;i- ...
- python 手写选择排序(不用sort)
函数mysort(alist)用于计算包含数字的列表的排序(包括升序和降序.不能使用python中的函数sort或sorted). import random def section_sort1(al ...
- 【福利分享】阿里面试官叫我手写HashMap,我两分钟就给他整出来了!!!
文章目录
最新文章
- c语言c++语言中静态变量,函数详解
- java 方法里面定义接口_java – 当接口A在其方法签名中定义接口B时
- 《C#精彩实例教程》小组阅读12 -- C#面向对象技术高级应用
- 给Nginx配置一个自签名的SSL证书
- mysql简拼_mysql实现汉字换拼音,及汉字转简拼
- 一篇演讲 By 浙江大学数学系主任刘克峰
- tensorrt轻松部署高性能dnn推理_部署环境之:tensorRT的插件
- jsp之建立一个九九乘法表
- python 写入csv有引号_python读带引号的csv--解决 'utf-8' codec can't decode
- 最速下降法 理论证明
- QQ空间 自动点赞脚本
- 一文读懂RFID射频识别技术
- 标书制作,全流程视频教程大全
- 我上传的CSDN资源无法使用的处理方法
- 滴滴APM工具Dokit
- 使用ffmpeg调整图像大小
- HTML 信息隐藏与提取
- 测试用例设计方法(2)
- ubuntu 更新系统源
- 计算机安全检查表,电脑安全自我检查表.doc