java9新特性-12-集合工厂方法:快速创建只读集合
1.官方Feature
269: Convenience Factory Methods for Collections
2.产生背景
要创建一个只读、不可改变的集合,必须构造和分配它,然后添加元素,最后包装成一个不可修改的集合。
比如:
![](http://upload-images.jianshu.io/upload_images/9654439-a9f1c4f5312fae39.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/659)
缺点:我们一下写了五行。即:它不能表达为单个表达式。
当然,我们也可以稍微简单点处理:
![](http://upload-images.jianshu.io/upload_images/9654439-216338bd4b76a998.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/662)
3.使用说明
Java9因此引入了方便的方法,这使得类似的事情更容易表达。
![](http://upload-images.jianshu.io/upload_images/9654439-8903e195d06b8005.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/611)
List firsnamesList= List.of(“Joe”,”Bob”,”Bill”);
调用集合中静态方法of(),可以将不同数量的参数传输到此工厂方法中。此功能可用于Set和List,也可用于Map的类似形式。此时得到的集合,是不可变的:在创建后,继续添加元素到这些集合会导致 “UnsupportedOperationException” 。
由于Java 8中接口方法的实现,可以直接在List,Set和Map的接口内定义这些方法,便于调用。
4.使用举例
![](http://upload-images.jianshu.io/upload_images/9654439-0c0af337113c6bb5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/659)
作者:尚硅谷面试官宋红康
链接:https://www.jianshu.com/p/9660482286d4
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。