/*** @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排序相关推荐

  1. 自己手写HashMap——红黑树的Java实现

    0.引言 (1)HashMap简单介绍 你好,这篇文章是<自己手写HashMap>的第一篇. 在java7之前,HashMap是用数组(hash桶)+链表的形式实现的,大概的原理就是对ke ...

  2. Java手写Hashmap(HashMap的基本用法)

    一:引言 HashMap是Map的实现类,其方法都可以继承Map,不用手写,本篇只是为了了解底层代码和复习java基础敲得码 二:上码 package cn.wyj.two;public class ...

  3. 手写HashMap,快手面试官直呼内行

    手写HashMap?这么狠,面试都卷到这种程度了? 第一次见到这个面试题,是在某个不方便透露姓名的Offer收割机大佬的文章: 这--我当时就麻了,我们都知道HashMap的数据结构是数组+链表+红黑 ...

  4. 面试表演了手写HashMap,把面试官给秀到了

    手写HashMap?这么狠,面试都卷到这种程度了? 第一次见到这个面试题,是在某个不方便透露姓名的Offer收割机大佬的文章: 手写HashMap,快手一面卒 这--我当时就麻了,我们都知道HashM ...

  5. 手写Hashmap第二版

    在第一版的基础上,如果需要实现线程安全,需要在增加.删除.扩容的时候加锁.扩容的时候,需要对整个数组加锁.增加和删除的时候,只需要对链表的头结点进行加锁.具体实现代码如下: package www.d ...

  6. 内含扩容源码的面试题,目标是手写HashMap!

    基础知识 说说List.Set.Map三者的区别 List(对付顺序的好帮手):List接口存储一组不唯一(可以用多个元素引用相同的对象),有序的对象. Set(注重第一无二的性质):不允许重复的集合 ...

  7. 手写HashMap及测试

    MyHashMap: /* 手动实现一个HashMap(根据JDK 1.7, 数组 + 链表)规定key和value都不能是null,但是JDK 1.7允许key和value为null.*/publi ...

  8. 手写基础排序及查找算法

    目录 冒泡排序 插入排序 选择排序 快速排序 归并排序 二分查找 冒泡排序 void bubble_sort(int a[],int n){int t;for(int i=n-1;i>=0;i- ...

  9. python 手写选择排序(不用sort)

    函数mysort(alist)用于计算包含数字的列表的排序(包括升序和降序.不能使用python中的函数sort或sorted). import random def section_sort1(al ...

  10. 【福利分享】阿里面试官叫我手写HashMap,我两分钟就给他整出来了!!!

    文章目录

最新文章

  1. c语言c++语言中静态变量,函数详解
  2. java 方法里面定义接口_java – 当接口A在其方法签名中定义接口B时
  3. 《C#精彩实例教程》小组阅读12 -- C#面向对象技术高级应用
  4. 给Nginx配置一个自签名的SSL证书
  5. mysql简拼_mysql实现汉字换拼音,及汉字转简拼
  6. 一篇演讲 By 浙江大学数学系主任刘克峰
  7. tensorrt轻松部署高性能dnn推理_部署环境之:tensorRT的插件
  8. jsp之建立一个九九乘法表
  9. python 写入csv有引号_python读带引号的csv--解决 'utf-8' codec can't decode
  10. 最速下降法 理论证明
  11. QQ空间 自动点赞脚本
  12. 一文读懂RFID射频识别技术
  13. 标书制作,全流程视频教程大全
  14. 我上传的CSDN资源无法使用的处理方法
  15. 滴滴APM工具Dokit
  16. 使用ffmpeg调整图像大小
  17. HTML 信息隐藏与提取
  18. 测试用例设计方法(2)
  19. ubuntu 更新系统源
  20. 计算机安全检查表,电脑安全自我检查表.doc

热门文章

  1. C++ VS编译问题--VS下生成DLL,但没有生成Lib的解决办法
  2. 使用端口扫描工具消除端口安全威胁
  3. 23个热门python爬虫项目,爬虫仍需谨慎,牢饭不是很香!!!
  4. NSSM 制作 window 服务
  5. Web安全攻防渗透测试
  6. 《CSS世界》学习笔记(一)
  7. 样条曲线(spline)
  8. pip常用指令及numpy安装
  9. catia二次开发:文件视图,exe,窗口切换,隐藏罗盘复位,按名称找对象,newfrom,登录,状态栏, 类型名,显示,不弹提示,workbench,不可视,部分更新,导出展开结构树,换行,元素存在
  10. js/JavaScript获取IP地址的方法小结