请选择 进入手机版 | 继续访问电脑版

Collections 的 emptyList()、emptyMap() 、emptySet()

[复制链接]
那有先生不说话 发表于 2021-1-1 17:46:05 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
  1. Collections.emptyList()Collections.emptyMap()Collections.emptySet()
复制代码
参考链接:

https://stackoverflow.com/questions/14846920/collections-emptymap-vs-new-hashmap
会生成指定范例的空 List Set Map,而且是不可变的,如举行 add() 操纵会报 java.lang.UnsupportedOperationException,返回这样不可变的空聚集有什么作用呢?


  • 方法内部会返回 static final 成员,创建后相当于常量可重复引用,当需要使用一个空集适时不消 new 去分配内存,比如一个测试用例 API 接口就需要一个 Map ,若此时只需要一个空 map 跑用例,直接用 Collections.emptyMap() 作为参数即可
  • 防止空指针出现,当你的代码需要一个聚集而这个聚集大概不存在,此时尽量使用空聚集而不是 null,因为聚集一个常用的操纵就是遍历,你不知道你返回的效果在后续会不会被遍历。比如一个查询步调返回一个聚集,当返回一个空聚集是就可以用这类方法,还可以防止后续对这个空聚集再做 add 操纵。
注意:返回0长度的数组大概聚集,而不是 null
而且当我们每次都 new ArrayList() 大概 new LinkedList() ,在创建的时候就会有初始巨细,多少会占用一些内存。每次使用都 new 一个空的 list 聚集,浪费就聚沙成塔,浪费就严重啦。
  1. /*** The empty map (immutable).  This map is serializable.** @see #emptyMap()* @since 1.3*/@SuppressWarnings("rawtypes")public static final Map EMPTY_MAP =  new EmptyMap();/*** Returns an empty map (immutable).  This map is serializable.**
  2. This example illustrates the type-safe way to obtain an empty map:* @implNote Implementations of this method need not create a separate* {@code Map} object for each call.  Using this method is likely to have* comparable cost to using the like-named field.  (Unlike this method, the* field does not provide type safety.)** @param  the class of the map keys* @param  the class of the map values* @return an empty map* @see #EMPTY_MAP* @since 1.5*/@SuppressWarnings("unchecked")public static final  Map emptyMap() {return (Map) EMPTY_MAP;}
复制代码
  ------致所有正在积极奋斗的步调猿们!加油!!
有码走遍天下 无码寸步难行
1024 - 梦想,永不止步!
爱编程 不爱Bug
爱加班 不爱黑眼圈
固执 但不偏执
疯狂 但不疯癫
生活里的菜鸟
工作中的大神
身怀宝藏,一心向往星辰大海
追求极致,目的始于高山之巅
一群怀揣好奇,梦想改变世界的孩子
一群追日逐浪,正在改变世界的极客
你们用最美的语言,诠释着科技的气力
你们用极速的创新,引领着时代的变迁
——乐于分享,共同进步,欢迎补充
——Treat Warnings As Errors
——Any comments greatly appreciated
——Talking is cheap, show me the code
——恳切欢迎各位交换讨论!QQ:1138517609
——CSDN:https://blog.csdn.net/u011489043
——简书:https://www.jianshu.com/u/4968682d58d1
——GitHub:https://github.com/selfconzrr


来源:https://blog.csdn.net/u011489043/article/details/112017219
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题

专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )