ArrayList中的toArray方法

讲解API:

                   1.list.toArray();

                   2.list.toArray(T[]  a);

作用:将集合转换为集合。

目的:解决toArray()出现的 类型转换异常

代码:

ArrayList<String> list=new ArrayList<String>();
        for (int i = 0; i < 10; i++) {
            list.add(""+i);
        }
         
        String[] array= (String[]) list.toArray();

异常: Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;

原因:toArray(),将集合(向上转型)转换为Object类型的数组。

           不支持向下转型。所以不能强转成String

解决方案(一):一个一个元素转成目标类型!

代码:

Object[] arr = list.toArray();
        for (int i = 0; i < arr.length; i++) {
            String e = (String) arr[i];
            System.out.println(e);
        }

解决方案(二):使用重载方法 list.toArray(T[]  a);

ArrayList<String> list=new ArrayList<String>();
        for (int i = 0; i < 10; i++) {
            list.add(""+i);
        }
         String[] array =new String[list.size()];

        list.toArray(array);

猜你喜欢

转载自blog.csdn.net/qq_38214630/article/details/85066399