Java Arrays.asList() 的避雷

Posted ZSYL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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, 2, 3 };
List myList = Arrays.stream(myArray2).boxed().collect(Collectors.toList());
System.out.println("myList = " + myList);

参考博客:Address

感谢

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

以上是关于Java Arrays.asList() 的避雷的主要内容,如果未能解决你的问题,请参考以下文章

java Arrays.asList 问题

Java Arrays.asList

Java - 一道关于Arrays.asList的题目

c++ 中的类 Java Arrays.asList()

Java-Arrays类-Arrays.asList()方法详解

java.util.Arrays.asList 的用法