将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)

本文详细介绍了Java中如何将数组转换为ArrayList,包括Arrays.asList()、Collections.addAll()、集合的addAll()方法以及Spring框架的转换方法。同时,文章讨论了Arrays.asList()返回固定长度的List的原因以及对List进行修改时为何会影响原数组。此外,还解释了UnsupportedOperationException的来源。
摘要由CSDN通过智能技术生成

方法一:使用Arrays.asList()方法

 

对于Arrays.asList()方法需要注意以下几点:
1.该方法返回的是基于数组的List视图(List view)。所以,这种方式是将数组转换为List的最快的方式。因为返回的只是视图,不需要多余的内存来创建新的List以及复制操作。

2.该方法返回的List是长度是固定的(fixed),不是只读的。所以我们不能进行删除、添加操作,而可以使用set()方法进行修改元素操作。如果你对返回的List执行add()添加新元素,会返回UnsupportedOperationException。至于为什么报这个异常,文章末尾我会给出解释。

3.因为该方法返回的是基于原数组的List视图,所以,当我们使用set方法修改了List中的元素的时候,那么原来的数组也会跟着改变(这是视图的特性)。

4.从java 5开始,该方法支持泛型,所以我们可以从数组中得到类型安全ArrayList。

注意:
1.如果我们想让转换为只读的List,可以使用Collections.unmodifiableList()方法来将数组转换为指定List。

2.如果想返回的方法能够进行添加、删除元素操作,则可以使用new ArrayList(Arrays.asList(array)) ,这样就会创建一个对象类型的ArrayList,并将数组的内容拷贝过去。

 

 

方法二:使用Collections.addAll()方法

 

该方法没有第一种方法高效,但是更加灵活。同样也是新建一个ArrayList,将数组的内容复制进去。

对于该方法需要了解的:
1. 没有Arrays.asList()快,但是更加灵活。
2.该方法实际上是将数组的内容复制到ArrayList中
3.因为是复制内容到ArrayList中,所以我们对ArrayList进行修改、添加、删除操作都不会影响原来的数组。
4.该方法相当于一个添加操作。该方法并不会覆盖ArrayList中已经存在的元素。如下:

 

 

方法三:使用集合的addAll()方法

 

 

方法四:使用Spring框架将数组转换为List

 

Spring框架中的CollectionUtils提供了几个方法来将数组转换为Arraylist。例如:CollectionUtils.arrayToList()。当然,返回的List是不可修改的,不能add()或remove()元素。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值