Collection转换Array副作用

简介:

在Java中,常遇到List 转 String[], 或者 String[] 转List的场景,JDK提供方便的工具Arrays. 但要小心副作用。
如:

    String str = "a-b-c-d";
    String[] strings =str.split("-");
    List list = Arrays.asList(strings);
    Collections.reverse(list); ## this action will affect "strings"

发现,string[] 转为List后,对List的操作会改变原string[].

原来,Arrays.asList返回的是一个固定长度的java.util.Arrays.ArrayList(注意,不是java.util.ArrayList),Arrays.ArrayList中数据就是对原string[]的引用。

目录
相关文章
|
8月前
|
SQL XML Java
<foreach>元素中collection=list改成collection=array
<foreach>元素中collection=list改成collection=array
|
8月前
|
SQL IDE Java
MyBatis【问题 01】mapper传入array\collection\list类型的参数时报BindingException:Parameter ‘xx‘ not found问题复现及解决
MyBatis【问题 01】mapper传入array\collection\list类型的参数时报BindingException:Parameter ‘xx‘ not found问题复现及解决
236 0
|
存储 安全 Java
Collection 和 Collections;Array与Arrays的区别
<h2>Collection 和 Collections的区别。</h2> <p>Collection是个java.util下的接口,它是各种集合结构的父接口。继承与他的接口主要有Set 和List.</p> <p>Collections是个java.util下的专用静态类,它包含有各种有关集合操作的静态方法。提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。</p>
1869 0
|
8月前
|
Python
使用array()函数创建数组
使用array()函数创建数组。
156 3
|
1月前
|
存储 Go 索引
go语言中的数组(Array)
go语言中的数组(Array)
115 67
|
3月前
|
人工智能 前端开发 JavaScript
拿下奇怪的前端报错(一):报错信息是一个看不懂的数字数组Buffer(475) [Uint8Array],让AI大模型帮忙解析
本文介绍了前端开发中遇到的奇怪报错问题,特别是当错误信息不明确时的处理方法。作者分享了自己通过还原代码、试错等方式解决问题的经验,并以一个Vue3+TypeScript项目的构建失败为例,详细解析了如何从错误信息中定位问题,最终通过解读错误信息中的ASCII码找到了具体的错误文件。文章强调了基础知识的重要性,并鼓励读者遇到类似问题时不要慌张,耐心分析。
|
3月前
|
存储 Java
Java“(array) <X> Not Initialized” (数组未初始化)错误解决
在Java中,遇到“(array) &lt;X&gt; Not Initialized”(数组未初始化)错误时,表示数组变量已被声明但尚未初始化。解决方法是在使用数组之前,通过指定数组的大小和类型来初始化数组,例如:`int[] arr = new int[5];` 或 `String[] strArr = new String[10];`。
115 2

热门文章

最新文章