Collections.singletonList和Arrays.asList有什么不同呢?
下文笔者讲述Collections.singletonlist和Arrays.asList的区别,如下所示
Collections.singletonList简介
Collections.singletonList:长度为1
1. 调用Collections.singletonList(T o)方法
将创建一个SingletonList对象
SingletonList继承了抽象类AbstractList
2. SingletonList最大的特点
整个集合中只能有一个元素
不能调用add方法
3. SingletonList中
唯一的一个元素可以设置为null
4. SingletonList中唯一的一个元素是final类型
所以一旦被初始化完成后就不可以进行修改
只能通过各种不同的方式来进行读取这个唯一的元素
Arrays.asList:长度不可变
1. 调用 Arrays.asList(T… a)方法
创建一个ArrayList对象
ArrayList继承抽象类 AbstractList
2. ArrayList 最大的特点
整个集合允许有多个元素存入数组中
但是一旦初始化后
数组的长度就不可以再进行任何的更改
但是数组中的元素可以修改
3. ArrayList 中的传入的数组参数中允许存在null
但是不允许只有一个null
4. 由于 ArrayList 中存储数组是final类型的
所以一旦被初始化完成后长度就不可以进行修改
所以我们可以去遍历、修改 ArrayList中的元素
但不能去增加、删除
Collections.singletonList和Arrays.asList的区别
1. Collections.singletonList 和 Arrays.asList
都是长度不可变的集合
Collections.singletonList 长度为1,元素初始化完成就不可修改
Arrays.asList 长度不可变,元素初始化完成还可以进行修改
2. Collections.singletonList 中的唯一一个元素可以是null
如果 Arrays.asList 只存入一个元素的话,那就一定不允许为null
否则的话会抛出 NullPointerException 异常
3. Arrays.asList 中创建的 ArrayList 和我们常用的java.util.ArrayList并不是同一个
4. Collections.singletonList 中保存元素的是一个对象
Arrays.asList 中保存元素的是一个数组
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


