解析ArrayList的toArray方法的使用:ArrayList转为数组

本文介绍了Java中ArrayList类的toArray方法的使用方式,包括如何将ArrayList转换为Object数组以及如何转换为指定类型的数组。通过示例代码展示了两种不同的转换方法。
  • ArrayList提供了一个将List转为数组的一个非常方便的方法toArray。
  • toArray有两个重载的方法:

(1)list.toArray(); //将List直接转为Object[] 数组,无法将Object[] 直接转化为具体类型的数组。

(2)list.toArray(T[] a); //将list转化为自定义的需要的类型的数组

在这里插入图片描述

代码实操说明

方法 list.toArray()

public class ToArrayTest {
        public static void main(String[] args) {
            ArrayList<String> list = new ArrayList<>();
            for (int i = 0; i < 10; i++) {
                list.add(String.valueOf(i));
            }


            Object[] objects = list.toArray();
            System.out.println(Arrays.toString(objects));
            
            // 错误写法
            // 这里无法直接将Object[]强转为String[]
            // Object[] objects = (String[])list.toArray();

            // 转化的话只能是取出每一个元素再转化。
            // java中的强制类型转换只是针对单个对象的,无法直接整个数组转换成另外一种类型的数组是不行的
            // 这和数组初始化时需要一个个来也是类似的。
            
            //Object[] 转为 String[]
            //如果想把Object[] 转为String[] 应该遍历得到每一个Object 逐个强转
            //代码如下
            String[] strings = new String[objects.length];
            for (int i = 0; i < objects.length; i++) {
                strings[i] = (String) objects[i];
            }
            System.out.println(Arrays.toString(strings));
        }
    }

list.toArray(T[] a)

public class ToArrayTest {
        public static void main(String[] args) {
            ArrayList<String> list = new ArrayList<>();
            for (int i = 0; i < 10; i++) {
                list.add(String.valueOf(i));
            }

			//new 一个字符串数组
            String[] strings = new String[list.size()];
            //将list转入strings中
            list.toArray(strings);
            System.out.println(Arrays.toString(strings));
       }
}

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值