大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
如何将一个数组转成集合?
java.util.Arrays 类为我们提供了一个方法
Arrays.asList(T… a)
此方法可以将数组转换成一个arrayList集合
使用方法:
public static void main(String[] args) {
String[] array= {
"张三","李四","王五"};
List<String> asList = Arrays.asList(array);
System.out.println(asList.toString());
}
输出:
[张三, 李四, 王五]
注意:通过Arrays.asList(T… a)转换后的集合不可以进行添加或删除等修改操作,否则会报错:
向数组转换后的集合添加元素:
public static void main(String[] args) {
String[] array= {
"张三","李四","王五"};
List<String> asList = Arrays.asList(array);
asList.add("赵六");
System.out.println(asList.toString());
}
向数组转后的集合删除元素:
public static void main(String[] args) {
String[] array= {
"张三","李四","王五"};
List<String> asList = Arrays.asList(array);
asList.remove(0);
System.out.println(asList.toString());
}
会发现,报了一个同样的错:
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.remove(Unknown Source)
at com.strCount.Str01.main(Str01.java:11)
调用Arrays.asList()生成的List的add、remove方法时报异常,这是因为Arrays.asList() 返回的是Arrays的内部类ArrayList, 而不是java.util.ArrayList。Arrays的内部类ArrayList和java.util.ArrayList都是继承AbstractList,remove、add等方法AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。java.util.ArrayList重写了这些方法而Arrays的内部类ArrayList没有重写,所以会抛出异常。解决方法如下:
public static void main(String[] args) {
String[] array= {
"张三","李四","王五"};
List<String> asList = Arrays.asList(array);
ArrayList arrayList = new ArrayList(asList);
arrayList.add("赵六");
System.out.println(arrayList.toString());
}
输出:
[张三, 李四, 王五, 赵六]
注意此时的集合已不再是之前转换后的集合,而是重新创建了一个新的集合,并且将转换后的集合复制进去,再进行操作
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/192656.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...