java 数组转list的方式

1.最常用的方式(不支持新增和删除)

通过Arrays.asList(arrays)方式将数组转为list

String [] str = new String[1];
List<String> stringList = Arrays.asList(str);
System.out.println(stringList);

注:该返回值List只能用于查询和修改,不能新增和删除,否则会抛异常

Exception in thread "main" java.lang.UnsupportedOperationException
	at java.util.AbstractList.add(AbstractList.java:148)
	at java.util.AbstractList.add(AbstractList.java:108)
	at com.example.demo.test.ArraysToList.t1(ArraysToList.java:23)
	at com.example.demo.test.ArraysToList.main(ArraysToList.java:49)

原因解析:

Arrays.asList(arrays)返回值是java.util.Arrays类中一个私有静态内部类java.util.Arrays.ArrayList,它并非java.util.ArrayList类。java.util.Arrays.ArrayList类具有set(),get(),contains()等方法,但是不具有add()和remove()方法,所以调用add()方法时会报错

2.最常用的方式(支持新增和删除)

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

List<String> stringList = new ArrayList<>(Arrays.asList(str));

然后就可以对list进行新增和删除操作了,示例如下:

String [] str = new String[2];
List<String> stringList = new ArrayList<>(Arrays.asList(str));
System.out.println(stringList);
stringList.add("1");
System.out.println(stringList);

注:该方法适合List数据量不大的情况下使用

3.最高效的方法(支持新增和删除)

通过集合工具类Collections.addAll(list,arrays)方法进行转换。根据数组的长度创建一个长度相同的list,然后通过Collections.addAll(list,arrays)方法,将数组中的元素转为二进制,然后添加到list中

String [] str = new String[3];
List<String> list = new ArrayList<>(str.length);
Collections.addAll(list, str);
System.out.println(list);
list.add("2");
System.out.println(list);

注:该方法适合List数据量大的情况下优先使用

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,有几种方法可以将数组换为List。其中一种方式是使用Arrays.asList()方法。这个方法将数组作为参数传入,并返回一个对应的List。例如,可以使用Arrays.asList(array)来将一个名为array的数组换为List。 另一种方式是通过创建一个长度相同的ArrayList,并使用Collections.addAll()方法将数组中的元素添加到List中。例如,可以使用以下代码实现:ArrayList<String> list = new ArrayList<String>(array.length); Collections.addAll(list, array)。这种方式的优点是在需要对List进行增删改查操作时,可以提高操作速度。然而,这种方法不支持新增或删除元素。 还有一种方式是使用JDK 8引入的Stream流。可以通过Arrays.stream(array)方法将数组换为Stream流,然后使用collect(Collectors.toList())方法将流换为List。这种方式适用于需要对数组进行一系列操作后再换为List的情况。 总之,根据具体需求,可以选择合适的方式Java数组换为List,并在之后根据需要进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [java数组List的几种方式](https://blog.csdn.net/weixin_46439070/article/details/127107255)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值