Java中List类中toArray()方法的功能简介说明
下文笔者讲述list中toArray()方法的功能简介说明,如下所示
toArray(T[] a)的使用示例
toArray()方法的功能:
就是返回一个Object数组
其核心原理是使用Arrays.copyOf方法将元素都复制到数组中
源码分析
list.toArray()方法示例:
public Object[] toArray() {
return Arrays.copyOf(elementData, size);
}
//参数说明
// transient Object[] elementData;
//存放list中的各个元素
// private int size; list中元素的个数
toArray(T[] a)泛型数组方法
//用于接收T类型的数组
//返回一个T类型的数组 (常用)
//源码如下所示
public <T> T[] toArray(T[] a) {
//当传入的数组的长度小于list中的元素个数
if (a.length < size)
//通过Arrays.copyOf()方法进行拷贝
//内部会创建一个T类型的数组, 长度为size, 和a就没有关系了
return (T[]) Arrays.copyOf(elementData, size, a.getClass());
//当传入的数组的长度大于等于list中的元素个数,则直接将elementData中的元素拷贝到a中
System.arraycopy(elementData, 0, a, 0, size);
//当传入的数组的长度大于list中的元素个数, 将a[size]赋值为null
if (a.length > size)
a[size] = null;
return a;
}
例:toArray(T[] a)的使用示例
例1:将list转为一维数组 List<String> list = new ArrayList<>(); list.add("java265"); list.add("maomao"); list.add("java265.com"); list.add("我最爱java开发"); String[] strs = list.toArray(new String[0]); System.out.println(Arrays.toString(strs)); 例2:将list转为二维数组 List<int[]> list = new ArrayList<>(); list.add(new int[]{88,11}); list.add(new int[]{99,22}); list.add(new int[]{10,20}); list.add(new int[]{44,88}); int[][] arr = list.toArray(new int[0][]); for(int[] t : arr){ System.out.println(Arrays.toString(t)); }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


