arrays.asList,arraysaslist字段顺序会乱吗
Arrays.asList(s)使用注意
1,参数为null
当 Arrays.asList(null)//会报错:java.lang.NullPointerException
2,asList操作基本数据类型的数组,直接输出返回值为地址
3,asList操作String类型的数组,返回的List大小固定,不能使用remove/add方法
Arrays.asList(array)调用如下方法:
参考:
Collections.singletonList和Arrays.asList的区别
1. 调用Collections.singletonList(T o)方法其实是创建了一个SingletonList对象,SingletonList继承了抽象类AbstractList
2. SingletonList最大的特点是整个集合中只能有一个元素,不能调用add方法
3. SingletonList中唯一的一个元素可以设置为null
4. 由于SingletonList中唯一的一个元素是final类型的,所以一旦被初始化完成后就不可以进行修改,只能通过各种不同的方式来进行读取这个唯一的元素
1. 调用 Arrays.asList(T… a)方法其实是创建了一个 ArrayList 对象,ArrayList 继承了抽象类 AbstractList
2. ArrayList 最大的特点是整个集合允许有多个元素存入数组中,但是一旦初始化后,数组的长度就不可以再进行任何的更改,但是数组中的元素可以修改
3. ArrayList 中的传入的数组参数中允许存在null,但是不允许只有一个null
4. 由于 ArrayList 中存储数组是final类型的,所以一旦被初始化完成后长度就不可以进行修改,所以我们可以去遍历、修改 ArrayList 中的元素但不能去增加、删除
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并不是同一个,所以不要以为 java.util.ArrayList 中可以使用的方法在 Arrays.asList 中也都可以使用,否则的话分分钟教你重新做人
4. Collections.singletonList 中保存元素的是一个对象, Arrays.asList 中保存元素的是一个数组,在这一点上,它俩的差别还是很大的,当然,如果你喜欢,也可以在 Collections.singletonList中保存一个数组对象
什么是使用Arrays.asList来初始化列表的最佳方法
Arrays.asList()
将一个数组转化为一个List对象,这个方法会返回一个ArrayList类型的对象, 这个ArrayList类并非java.util.ArrayList类,而是Arrays类的静态内部类!用这个对象对列表进行添加删除更新操作,就会报UnsupportedOperationException异常。
为什么Arrays.asList返回的ArrayList要用Arrays里的内部类?
第一个问题,好问题,搜了下,有现成的答案了:
stackoverflow.com/questions/4658867/why-does-arrays-aslist-return-its-own-arraylist-implementation
内部的ArrayList实现是一种视图,只是一种把集合转列表的桥梁,size是不可变的,当参数的列表元素改变,此ArrayList会自动刷新
而如果返回public的ArrayList,就意味着要复制所有元素。性能很差
第二个没看明白