热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java数组转list

方法一:最常见方式通过Arrays.asList(strArray)方式,将数组转换List后,不能对List增删,只能查改,否则抛异常

方法一:最常见方式

通过 Arrays.asList(strArray) 方式,将数组转换List后,不能对List增删,只能查改,否则抛异常。

String[] strArray = new String[2];
List<String> list &#61; Arrays.asList(strArray);
list.add("test");
System.out.println(list);

在这里插入图片描述
Arrays.asList(strArray)返回值是java.util.Arrays类中一个私有静态内部类java.util.Arrays.ArrayList&#xff0c;它并非java.util.ArrayList类。java.util.Arrays.ArrayList类没有重写removeAll()。因此会报错&#xff1a;java.lang.UnsupportedOperationException。
在这里插入图片描述
使用场景&#xff1a;Arrays.asList(strArray)方式仅能用在将数组转换为List后&#xff0c;不需要增删其中的值&#xff0c;仅作为数据源读取使用。

方法二.数组转为List后&#xff0c;支持增删改查的方式

通过ArrayList的构造器&#xff0c;将Arrays.asList(strArray)的返回值由java.util.Arrays.ArrayList转为java.util.ArrayList。
关键代码&#xff1a;ArrayList list &#61; new ArrayList(Arrays.asList(strArray)) ;

&#64;Testpublic void testConvertList(){String[] strArray &#61; new String[2];ArrayList<String> list &#61; new ArrayList<>(Arrays.asList(strArray));list.add("test");System.out.println(list); //[null, null, test]}

使用场景&#xff1a;需要在将数组转换为List后&#xff0c;对List进行增删改查操作&#xff0c;在List的数据量不大的情况下&#xff0c;可以使用。

方法三&#xff1a;通过集合工具类Collections.addAll()方法(最高效)

通过Collections.addAll(arrayList, strArray)方式转换&#xff0c;根据数组的长度创建一个长度相同的List&#xff0c;然后通过Collections.addAll()方法&#xff0c;将数组中的元素转为二进制&#xff0c;然后添加到List中&#xff0c;这是最高效的方法。

String[] strArray &#61; new String[2];ArrayList<Object> list &#61; new ArrayList<>(strArray.length);
Collections.addAll(list, strArray);
list.add("test");
System.out.println(list); //[null, null, test]

使用场景&#xff1a;需要在将数组转换为List后&#xff0c;对List进行增删改查操作&#xff0c;在List的数据量巨大的情况下&#xff0c;优先使用&#xff0c;可以提高操作速度。


推荐阅读
author-avatar
十字彩虹00
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有