ArrayList泛型存储类型以及Arraylist与数组的转换

1.泛型的存储类型

众所周知,ArrayList< E>泛型能够存储所有的对象类型,如String、对象、以及基本类型的包装类。

java中所有的基本类型如下:
在这里插入图片描述
那么,泛型< E>能否存储int[],String[]数组这种类型呢?答案肯定是可以的,因为在java中除了基本类型全部的类型都是对象

执行下面的代码,会得到对象的哈希码,这样也能验证数组的类型是对象。

int[] ints = new int[2];
System.out.println(ints);//[I@4eec7777

2.Arraylist与数组的转换(以Integer为例)

转换成对象数组

Collection集合中含有toArray方法将集合转换成对象数组:

  1. toArray()
    返回一个包含所有列表元素的Object数组。

  2. < T> T[] toArray(T[] a):
    返回一个包含所有列表元素的数组,该数组的运行时类型是指定数组的类型。如果指定数组能容纳列表中的所有元素,则会在该数组中返回元素;否则,将分配一个具有指定数组的运行时类型的新数组,并用列表中的元素填充它。

ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
Integer[] array = list.toArray(new Integer[0]);
//或者指定长度
Integer[] array = list.toArray(new Integer[list.size()]);

转换成基本数据类型数组

int和Integer不是一种数据类型所以不能直接转换,需要用stream流来将转换Integer转换成int。

ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);

int[] array = list.stream().mapToInt(Integer::intValue).toArray();       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值