Java Arrays.asList() 的避雷

Arrays.asList()

1.Arrays.asList()将数组转换为集合后,底层其实还是数组,它返回的是Arrays的一个内部类,体现了适配器模式。

2.传递的数组必须是对象数组,而不是基本类型。

3.当传入一个原生数据类型数组时,Arrays.asList()的真正得到的参数就不是数组中的元素,而是数组对象本身!此时List 的唯一元素就是这个数组。

4.使用集合的修改方法:add()、remove()、clear()会抛出UnsupportedOperationException异常。

5.返回的list集合数据不能更改,保证数据安全性

快速创建List

List list = new ArrayList<>(Arrays.asList(myArray));

使用Java8 stream创建

Integer [] myArray = { 1, 2, 3 };
List list = Arrays.stream(myArray).collect(Collectors.toList());
System.out.println("list = " + list);
//基本类型也可以实现转换(依赖Boxed的装箱操作)
int [] myArray2 = { 1, 3 };
List myList = Arrays.stream(myArray2).Boxed().collect(Collectors.toList());
System.out.println("myList = " + myList);

参考博客Address

感谢

参考大佬文章,及官方API,向优秀的人致敬!
加油!!!

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...