热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在Map.of工厂中保留插入顺序?

如何解决《如何在Map.of工厂中保留插入顺序?》经验,为你挑选了1个好方法。

Java 9提供Map.of()了轻松创建具有固定值的地图的功能.

问题:我想创建一个保留插入顺序的地图LinkedHashMap.这个工厂有可能吗?至少map.of()不保存订单......



1> Eugene..:

LinkedHashMap::of确实没有类似的工厂方法,而且Map本身没有订单,所以我看到它的唯一方法是构建一个LinkedHashMap如果你真的需要一个.

顺便说一下JEP本身:

具体集合类(例如,ArrayList,HashSet)上的静态工厂方法已从此提案中删除...

还有另一个问题,就是类的静态方法是由子类继承的.假设要添加静态工厂方法HashMap.of().由于LinkedHashMap是HashMap的子类,因此应用程序代码可以调用LinkedHashMap.of().这最终会调用HashMap.of(),而不是人们所期望的!

这里指出static方法是继承的,但不是可HashMap覆盖的,因此如果添加了这样的方法,则可能没有被覆盖LinkedHashMap.

如果可以使用guava,可以使用ImmutableMap记录为:

基于哈希的不可变Map,具有可靠的用户指定迭代顺序......


推荐阅读
author-avatar
fly-fox
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有