/*** @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. 让更多声音参与改变,美团外卖“订单分配”算法公开
  2. PostgreSQL的ecpg程序的调适与运行
  3. Python字符串的encode与decode
  4. OpenCV图像翻转:flip()函数的使用
  5. Linux 内核自旋锁
  6. 集成 websocket 的四种方案
  7. 异步读取数据库中数据
  8. Linux系统下使用iftop结合iptables服务解决带宽被恶意请求的问题
  9. python爬取天气预报并发送短信_Python3爬虫教程之利用Python实现发送天气预报邮件...
  10. ESP8266教程4 — ESP8266 智能配网
  11. JS 字符串截取切割操作汇总
  12. YIT-CTF—Web
  13. nodejs实现VSCode中的open with five server功能
  14. 作业 20180925-6 四则运算试题生成
  15. linux 变量替换字符串,shell中常用的变量处理、字符串操作(之一)
  16. 数据库备份数据:全量备份、增量备份
  17. 使用Jil序列化JSON提升Asp.net web api 性能
  18. oracle插入日期异常,Oracle插入日期数据常见的2个问题和解决方法
  19. JavaFX配置问题及解决措施:报错“缺少JavaFX组件”
  20. android-App启动过程

热门文章

  1. python获取APP夸克答题助手答案
  2. mysql 数据库并发限制_数据库的并发控制 - zhangjianyf的个人页面 - OSCHINA - 中文开源技术交流社区...
  3. 【CASS精品教程】CASS快捷键大全吐血整理
  4. Python学习基础系列----了解python
  5. HCNA学习的第二天
  6. 掌握这几个 Java 性能调优技巧,95%的面试必问的Java性能调优知识点,
  7. 《计算机系统基础》复习——简答题 01
  8. 【计算机系统基础】- 袁春风
  9. 缅怀:腾讯游戏毛星云(浅墨)突然离世
  10. 【阮一峰ES6入门教程学习笔记】letconst