java 数组转arraylist_Java将数组转为ArrayList

有时需要在java中将数组转换为List或ArrayList,这里将学习两种不同的方法来实现这一点。 由于List是一个接口而ArrayList是最流行的实现,因此转为List与将Array转换为ArrayList相同。 当调用某些返回数组的第三方类,然后需要将它们更改为List,或者向列表中添加更多数据时,就会出现这种情况。

Java将数组转为List

在Java中有两种内置方法可以将数组转换为List。

Arrays.asList(T… a):这是在java中将数组转换为ArrayList的最简单方法,但是此方法以ArrayList的形式返回数组的基础表示。 返回的ArrayList是固定大小的,任何修改它的尝试都会在运行时引发UnsupportedOperationException异常。 此外,数组中的任何更改也将更改ArrayList中的元素。

Collections.addAll(ArrayList strList, T[] strArr):这是将数组转换为ArrayList的最佳方法,因为数组数据被复制到列表中,并且都是独立的对象。 复制数组后,可以单独修改这两个对象。 Collections是Java Collections框架中一个非常有用的类,它提供了许多实用方法。

下面让我们看看这两种方法的用法。

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Collections;

import java.util.List;

public class ArrayToArrayList {

/**

* 此类显示将数组转换为ArrayList的不同方法

*

* @param args

*/

public static void main(String[] args) {

String[] strArr = {"1", "2", "3", "4"};

List strList = new ArrayList();

// 返回数组的列表表示

// 数组元素的任何更改也将更改arrayList元素

strList = Arrays.asList(strArr);

System.out.println("Original ArrayList from Arrays.asList()");

for (String str : strList)

System.out.print(" " + str);

//更改数组元素并查看效果是否也传播到列表中?

strArr[0] = "5";

System.out.println("Change in array effect on ArrayList");

for (String str : strList)

System.out.print(" " + str);

//下面的代码会抛出java.lang.UnsupportedOperationException,因为

// Arrays.asList()返回由指定数组支持的固定大小的列表。

//strList.add("5");

strList = new ArrayList();

Collections.addAll(strList, strArr);

//更改数组和arraylist并检查它们是否独立?

strList.add("5");

strArr[0] = "1";

System.out.println("\nArray to ArrayList using Collections.addAll()");

for (String str : strList)

System.out.print(" " + str);

}

}

执行上面示例代码,得到以下结果 -

Original ArrayList from Arrays.asList()

1 2 3 4

Change in array effect on ArrayList

5 2 3 4

Array to ArrayList using Collections.addAll()

5 2 3 4 5

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值