微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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,向优秀的人致敬!
加油!!!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐