Java HashMap如何实现基于键值对的自定义排序功能?

2026-04-13 05:271阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1231个文字,预计阅读时间需要5分钟。

Java HashMap如何实现基于键值对的自定义排序功能?

HashMap概述:HashMap是无序的,这里的无序意味着你取出数据的顺序可能与存入数据的顺序不同。

发现问题:当尝试向HashMap中存入int类型的key时,会发现输出时会自动排序,称为HashMapInt。

1.HashMap概述

HashMap是无序的,这里无序的意思是你取出数据的顺序与你存入数据的顺序不同

2.发现问题

当尝试向HashMap中存入int类型的key,可以看到在输出的时候会自动排序

HashMap<Integer, String> map = new HashMap<>(); map.put(3, "asdf"); map.put(2, "asdf"); map.put(1, "asdf"); map.put(6, "asdf"); map.put(5, "asdf"); map.put(4, "asdf"); map.put(8, "asdf"); map.put(9, "asdf"); map.put(7, "asdf"); map.put(0, "asdf");

输出

3.实现原理

我们都知道,HashMap是数组加链表实现的,在链表长度大于8的时候将链表转化为红黑树
数组加链表画一下模型图是这样的,黑色的是数组,橙色的是链表,遍历HashMap的key的时候,先遍历第一列,然后第二列。。。

阅读全文
标签:简单剖析

本文共计1231个文字,预计阅读时间需要5分钟。

Java HashMap如何实现基于键值对的自定义排序功能?

HashMap概述:HashMap是无序的,这里的无序意味着你取出数据的顺序可能与存入数据的顺序不同。

发现问题:当尝试向HashMap中存入int类型的key时,会发现输出时会自动排序,称为HashMapInt。

1.HashMap概述

HashMap是无序的,这里无序的意思是你取出数据的顺序与你存入数据的顺序不同

2.发现问题

当尝试向HashMap中存入int类型的key,可以看到在输出的时候会自动排序

HashMap<Integer, String> map = new HashMap<>(); map.put(3, "asdf"); map.put(2, "asdf"); map.put(1, "asdf"); map.put(6, "asdf"); map.put(5, "asdf"); map.put(4, "asdf"); map.put(8, "asdf"); map.put(9, "asdf"); map.put(7, "asdf"); map.put(0, "asdf");

输出

3.实现原理

我们都知道,HashMap是数组加链表实现的,在链表长度大于8的时候将链表转化为红黑树
数组加链表画一下模型图是这样的,黑色的是数组,橙色的是链表,遍历HashMap的key的时候,先遍历第一列,然后第二列。。。

阅读全文
标签:简单剖析