Arrays.asList作用和使用注意事项

Arrays.asList作用

把数组转换为集合,便于对数据进行操作

Arrays.asList的两个注意事项

1、参数必须是对象或者对象数组

Arrays.asList()的参数必须是对象或者对象数组,
错误做法:使用基础类型

int[] it = {1,2,3};
		List<int[]> ints = Arrays.asList(it);
		System.out.println(ints);
输出为[[I@59f95c5d]

正确做法:使用int的包装类Integer

Integer[] it = {1,2,3};
List<Integer> ints = Arrays.asList(it);
System.out.println(ints);
输出为[1, 2, 3]
2、返回值不是java.util.ArrayList而是java.util.Arrays的内部类
public static <T> List<T> asList(T... a) {
        return new ArrayList<>(a);
    }

    /**
     * @serial include
     */
    private static class ArrayList<E> extends AbstractList<E>
        implements RandomAccess, java.io.Serializable
    {
        private static final long serialVersionUID = -2764017481108945198L;
        private final E[] a;

        ArrayList(E[] array) {
            a = Objects.requireNonNull(array);
        }


注意两个地方
在这里插入图片描述

第一点是内部类ArraysList,第二点是a数组被final修饰,返回了ArrayList这个内部类,因此用Arrays.asList()将数组转换成list集合,获得的List是不能动态修改的,否则报错 java.lang.UnsupportedOperationException

错误的做法:

Integer[] it = {1,2,3};
List<Integer> ints = Arrays.asList(it);
ints.add(2);
System.out.println(ints);

解决办法:新建一个真正的List
比如:

Integer[] it = {1,2,3};
List<Integer> ints = new ArrayList<Integer>(Arrays.asList(it));
ints.add(4);
System.out.println(ints);
  • 12
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值