我是靠谱客的博主 魔幻外套,最近开发中收集的这篇文章主要介绍Immutable集合,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

    大家都知道JDK提供了Collections.UnmodifiableList(),Collections.UnmodifiableSet()和Collections.unmodifiableMap()这些包装方法。事实上它们的实现都是包装了原来的集合对象,然后在add,put,remove这样的方法上面抛出UnsupportedOperationException。这样就实现了Unmodifiable特性。这种做法在编程中叫作转发(forwarding)。

    这样的Unmodifiable集合能满足一般的需求,但是如果碰到下面的情况 - 例如你需要定义2个常数放在List里面然后把这个List做成final,而且用Collections.UnmodifiableList()包装一下,就以为高枕无忧了:

看上去unmodifiableList是不可改变的,但是如果这样:

 

    你再看unmodifiableList已经被加了"NORMAL"。

    当然有经验的程序员可以把原来的List放到新作的List然后Unmodifiable包装一下:

但是已经有Google Collection的Immutable集合解决了这个问题。刚才unmodifiableList可以这样来做:

    除此之外Immutable集合还提供了ImmutableSet和ImmutableMap来包装集合。

    为了便捷开发Immutable集合还能让开发者方便地在初始化设值:

    值得注意的是这些Immutable集合都是abstract类,它们的初始化都是由of(),copyOf()以及builder模式这样方式来实现。这也体现了作者在编程时候对代码灵活度的考虑。

 

    下载地址: google guava

 

最后

以上就是魔幻外套为你收集整理的Immutable集合的全部内容,希望文章能够帮你解决Immutable集合所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部