栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java数组转换成list的注意点

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java数组转换成list的注意点

在我们接触了数组之后,就可以把它转换成别的类型。具体的转换方法上想必大家都会,但是有些人在使用时出现了错误,可见这个问题还是迫切需要大家了解和解决的。本篇以Arrays.asList的转换方法为例,探究转换过程中的一些注意事项,以及处理问题点的解决办法。

1.数组转List

String[] str = new String[]{"AA", "BB", "CC"};
List list = Arrays.asList(str);

2.使用注意

(1)转换的数组不能是基本类型

首先,它转换的数组不能是基本类型,也就是如果要转基本类型,至少也要用包装类。

如下的结果是有问题的,会数组下标越界,因为实际上这个List只有一个元素,并且这个元素是整个数组对象a,并没有进行转换:

int[] a = {1, 2, 3};
List list = Arrays.asList(a);
System.out.println(list.get(1));

(2)不能使用集合的操作方法

add、remove、clear都是不能使用的,会抛出UnsupportedOperationException异常,因为Arrays.asList() 方法返回的并不是 java.util.ArrayList,而是 java.util.Arrays的一个内部类,这个内部类没有重写集合的这些方法。

但是set还是能用的,可以重写修改单个元素的值。

我们可以在Arrays中查看源码,只重写了get、set、indexOf、contains、forEach、replaceAll和sort方法。

3.问题解决

通过ArrayList的构造器,将Arrays.asList(strArray)的返回值由java.util.Arrays.ArrayList转为java.util.ArrayList。

private void testArrayCastToListRight() {
String[] strArray = new String[2];
ArrayList list = new ArrayList(Arrays.asList(strArray)) ;
list.add("1");
System.out.println(list);
}

执行结果:成功追加一个元素“1”。

[null, null, 1]

以上java数组转换成list的注意点,相信大家再遇到此类问题时,就可以使用ArrayList的构造器进行解决。学会后赶快试试这种方法吧。更多Java学习指路:java数组

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/15017.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号