社区
Java SE
帖子详情
HashMap是不是有序的,LinkedHashMap是不是有序的
young999999999
2014-08-25 10:49:01
HashMap是不是有序的,LinkedHashMap是不是有序的,详细解说一下
...全文
14379
4
打赏
收藏
HashMap是不是有序的,LinkedHashMap是不是有序的
HashMap是不是有序的,LinkedHashMap是不是有序的,详细解说一下
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sky_08_06_02
2016-10-10
打赏
举报
回复
会看书的小兔子
2016-10-09
打赏
举报
回复
HashMap无须, LinkedHashMap有序,输出时保持数据存入时的顺序
强迫症患者
2014-08-25
打赏
举报
回复
集合里面 TreeSet和TreeMap 是有序的,他们的底层是二叉树, TreeSet添加的时候会自己对数据进行比较,最好复写父类的hashCode和equals的方法按照自己的想法比较这样更好。
TreeMap 实现了j接口comparable,利用了compareTO的方法比较了。
HashMap是没有顺序的,而且读取的时候也不一定按照你存的顺序输出,它按照哈希值存储的。
kiyoki
2014-08-25
打赏
举报
回复
前者无序 后者迭代的时候保持输入顺序
阿里面试经历感想回顾总结
Java的数据结构相关的类实现原理,比如LinkedList,ArrayList,
HashMap
, TreeMap这一类的。以下简单模拟一个数据结构的连环炮。 比如,面试官先问你
HashMap
是不是
有序
的? 你肯定回答说,不是
有序
的。那面试官就会继续问你,有没有有顺序的Map实现类? 你如果这个时候说不知道的话,那这个问题就到此结束了。如果你说有TreeMap和
Linked
HashMap
。 那么面试官接下来就可能会问你,TreeMap和
Linked
HashMap
是如何保证它的顺序的? 如果你回答不上来,那么到此为止。如果你依然回答上来了,那么面试官还会继续问你,你 觉得它们两个哪个的
有序
实现比较好? 如果你依然可以回答的话,那么面试官会继续问你,你觉得还有没有比它更好或者更高效的 实现方式? 如果你还能说出来的话,那么就你所说的实现方式肯定依然可以问你很多问题。 以上就是一个面试官一步一步提问的例子。所以,如果你了解的不多,千万不要敷衍,因 为可能下一个问题你就暴露了,还不如直接说不会,把这个问题结束掉,赶紧切换到你熟 悉的领域 Java并发包当中的类,它们都有哪些作用,以及它们的实
tinymap:内存有效的不可变
HashMap
HashSet
TinyMap 内存有效的不可变
HashMap
该库提供了一种简单的开放式寻址
有序
哈希表实现。 该实现以及积极的对象重用策略(在此也提供)可以导致半结构化哈希映射的内存使用率极低。 这对于表示小的不可变事件非常有用。 TinyMap的主要优点是它不仅可以重用键和值,而且还可以重用整个地图,键集和列表。 与典型的
HashMap
相比,这可以使表示减小多达97%。 在下面,您可以比较使用Gson的LinkedTreeMap加载50,000个事件,将它们转换为
Linked
HashMap
,guava的ImmutableMap和TinyMap的内存需求,无论对象是否重复使用。 有什么缺点吗? 是的。 通过不存储Entry
对象,仅存储键和值的数组,我们节省了一些内存。 因此,与典型的Map实现相比,遍历map的entrySet可以执行更多的分配。 可以通过使用Map#forEa
众神:GoDS(数据结构)。 容器(集合,列表,堆栈,地图,树),集合(HashSet,TreeSet,LinkedHashSet),列表(ArrayList,SinglyLinkedList,DoublyLinkedList),堆栈(LinkedListStack,ArrayStack),地图(
HashMap
,TreeMap,HashBidiMap,TreeBidiMap,
Linked
HashMap
) ,树(RedBlackTree,AVLTree,BTree,BinaryHeap),比较器,迭代器,可
GoDS(Go数据结构) Go中各种数据结构和算法的实现。 数据结构 货柜 所有数据结构都通过以下方法实现容器接口: type Container interface { Empty () bool Size () int Clear () Values () [] interface {} } 容器是
有序
的还是无序的。 所有
有序
的容器都提供,其中一些允许。 数据 结构体 已订购 被引用 是 是* 是 指数 是 是 是 指数 是 是* 是 指数 没有 没有 没有 指数 是 是* 是 指数 是 是* 是 指数 是 是 没有 指数 是 是* 没有 指数 没有 没有 没有
fastjson为什么默认是无序的
在做项目的时候,无意间发现添加到json中的元素是无存放顺序的。严格来说,json默认是有存放顺序的,不过是采用HashCode值来排序。下面来看一段源码 上图展示了创建json对象的一个过程,可以清晰的看出,无论用户调用哪个构造方法,最终都是去执行图片上最后这个构造方法,根据用户传入的第二个参数来决定创建
Linked
HashMap
对象还是
HashMap
对象,这就说明了,json底层是一个Map集合,也就解释了为什么json默认存放元素是无序的(其实是
有序
的,不过按照HashCode排序,跟put顺序无关)。 如有写的不对的地方,敬请指正,感谢! 作者:xioayu96
HashMap
和
有序
Linked
HashMap
实现对比
Linked
HashMap
:
Linked
HashMap
简单来说是一个
有序
的
HashMap
,其是
HashMap
的子类,
HashMap
是无序的。接下来我们通过对比分析
HashMap
和
Linked
HashMap
来了解一下
Linked
HashMap
是如何实现
有序
的。首先
HashMap
及子类
Linked
HashMap
都提供了一个数组。 Node[] table 不同key的hash值是分布在这个数组中的
Java SE
62,615
社区成员
307,318
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章