博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java9:集合性能提升
阅读量:7217 次
发布时间:2019-06-29

本文共 1351 字,大约阅读时间需要 4 分钟。

hot3.png

 

随着java9的临近,让我们看一下使用新的REPL和新工具方法一起在集合中的使用。

java9已经创建了工厂方法去创建不可变得LIsts,Sets,Maps和Map.Entry对象。这些工具方法会被用于创建空的或非空的集合对象。

在java以及早期版本,我们可以使用Collections类的工具方法例如像unmodifiableXXX去创建符合我们需求的不可变的集合。如果我们想去创建一个不可变的LIst,我们可以使用Collections.unmodifiableList方法。

但是这些Collections.unmodifiableXXX相当的冗长与乏味。为了克服这些缺点,在java9中为List,Set和Map提供了一系列接口去实现同样的功能。

这些有用的方法被用于去创建一个新的非空的不可变的带1-10个元素的Map。这种方法被设计用于这些场景,诸如我们可以只增加10个元素到不可变的LIst,Set,Mao和Map.Entry对象。

我们可以使用这个特性,当我们对一个持有最大元素个数为10或更少的不可变集合有需求时

这些工具方法的特征

1.这些方法是不可变的,我们不能增加删除或更新元素,如果我们尝试去做这些操作,方法将抛出unsupportedOperationException

 

2.这些方法不允许控制,如果我们增加控制,他讲抛出nullPointException

 

3.如果所有元素都是序列化的,那么集合才是序列化的

 

例子

List:(有值list与空list)

List<String> list=List.of("apple","bat");

List<String> list=List.of();

 

Set:(有值set与空set)

Set<String> set=Set.of("apple","bat");

Set<String> set=Set.of();

 

Map:(有值map与空map)

Map<Integer,String> set=Set.of(1,"apple",2,"bat",3,"cat");

Map<Integer,String> emptyMap=Map.of();

 

Map.Entry:(有值Map.Entry与空Map.Entry)

Map<Integer,String> emptyEntry=Map.ofEntries();

Map.Entry<Integer,String> mapEntry1=Map.entry(1,"Apple");

Map.Entry<Integer,String> mapEntry2=Map.entry(1,"bat");

Map.Entry<Integer,String> mapEntry3=Map.entry(1,"cat");

Map<Integer,String> mapEntry=Map.ofEntries(emptyEntry1,emptyEntry2,emptyEntry3);

注意:java9可以使用Jshell(REPL)去写代码并且立即执行不需要class文件和main入口方法

 

 

 

转载于:https://my.oschina.net/tomzhao2014/blog/1088691

你可能感兴趣的文章
java环境配置正确,但是tomcat不能启动的解决办法
查看>>
我就是想找个人聊聊天,说说我这近四年来的经历
查看>>
不同的测试方法使用的场景
查看>>
Hadoop快速入门
查看>>
Problem S
查看>>
SVN上传的时候没法显示文件名,只显示后缀名
查看>>
Python:pygame游戏编程之旅四(游戏界面文字处理)
查看>>
fedroa 编译安装mysql5.5
查看>>
WC2018游记
查看>>
毕设开发日志2017-10-23
查看>>
***微信公众平台开发: 获取用户基本信息+OAuth2.0网页授权
查看>>
第二章 例题2-2 在屏幕上显示两个短句
查看>>
【转】iOS学习之适配iOS10
查看>>
OC语言BLOCK和协议
查看>>
C++创建一个动态链接库工程
查看>>
(六)maven之本地仓库
查看>>
如何使用 SPICE client (virt-viewer) 来连接远程虚拟机桌面?
查看>>
CentOS7
查看>>
linux高编IO-------tmpnam和tmpfile临时文件
查看>>
微信的机器人开发
查看>>