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[]的引用。

目录
相关文章
|
1月前
|
SQL XML Java
<foreach>元素中collection=list改成collection=array
<foreach>元素中collection=list改成collection=array
|
4月前
|
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问题复现及解决
50 0
|
存储 安全 Java
Collection 和 Collections;Array与Arrays的区别
<h2>Collection 和 Collections的区别。</h2> <p>Collection是个java.util下的接口,它是各种集合结构的父接口。继承与他的接口主要有Set 和List.</p> <p>Collections是个java.util下的专用静态类,它包含有各种有关集合操作的静态方法。提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。</p>
1809 0
|
2月前
|
JavaScript 前端开发
总结TypeScript 的一些知识点:TypeScript Array(数组)(下)
一个数组的元素可以是另外一个数组,这样就构成了多维数组(Multi-dimensional Array)。
|
2月前
|
存储 JavaScript 前端开发
总结TypeScript 的一些知识点:TypeScript Array(数组)(上)
数组对象是使用单独的变量名来存储一系列的值。
|
3月前
|
存储 安全 Swift
在Swift中,数组(Array)
在Swift中,数组(Array)
29 3
|
4月前
|
Ruby