Android toArray

Android toArrayArrayList提供了一个将List转为数组的一个非常方便的方法toArray。toArray有两个重载的方法:1.list.toArray();2.list.toArray(T[]a);对于第一个重载方法,是将list直接转为Object[]数组;第二种方法是将list转化为你所需要类型的数组,当然我们用的时候会转化为与list内容相同的类型。不明真像的同学喜欢用第

大家好,又见面了,我是你们的朋友全栈君。

ArrayList提供了一个将List转为数组的一个非常方便的方法toArray。toArray有两个重载的方法:

1.list.toArray();

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

对于第一个重载方法,是将list直接转为Object[] 数组;

第二种方法是将list转化为你所需要类型的数组,当然我们用的时候会转化为与list内容相同的类型。

不明真像的同学喜欢用第一个,是这样写:

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;

原因一看就知道了,不能将Object[] 转化为String[].转化的话只能是取出每一个元素再转化,像这样:

Object[] arr = list.toArray();

        for (int i = 0; i < arr.length; i++) {

            String e = (String) arr[i];

            System.out.println(e);

        }

所以第一个重构方法就不是那么好使了。

实际上,将list世界转化为array的时候,第二种重构方法更方便,用法如下:

String[] array =new String[list.size()];

        list.toArray(array);

1.
public Object[] toArray(); {

Object[] result = new Object[size];
System.arraycopy(elementData, 0, result, 0, size);;
return result;
}

2.

public Object[] toArray(Object a[]); {

if (a.length < size);
a = (Object[]);java.lang.reflect.Array.newInstance(
a.getClass();.getComponentType();, size);;
System.arraycopy(elementData, 0, a, 0, size);;

if (a.length > size);
a[size] = null;

return a;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146390.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 分析函数 ExecuteSQL

    分析函数 ExecuteSQL
    在学生管理系统中,执行sql语句时,我们用到这个函数,当时有几点不明,现在说说我的理解。
     
    PublicFunctionExecuteSQL(ByValSQLAsString,MsgStringAsString)AsRecordset
      ……
      sTokens=Split(SQL)
    ‘Split返回一个下标从0开始的一维数组,包含指定数目的子字符串。”Select”+”*”+”from”+”user_Info”+

    2022年5月11日
    40
  • setContentView的时候,到底发生了什么

    setContentView的时候,到底发生了什么关于setContentView方法,想必大家对这个方法既熟悉又陌生,熟悉的原因是因为基本上我们每创建一个activity,都会调用这个方法,比如:“`@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}“`而且这种写法已经是创建activity的模版了

    2022年6月26日
    20
  • 经典算法

    经典算法

    2021年5月19日
    117
  • DM7.0在VM-中标麒麟NeoKylin虚拟机上安装[通俗易懂]

    DM7.0在VM-中标麒麟NeoKylin虚拟机上安装[通俗易懂]DM7.0在VM-中标麒麟虚拟机上安装一、环境准备(VM安装中标麒麟虚拟机)1、安装vm14+中标麒麟6(NeoKylinLinxServer6forx86-64操作系统)挂载信息:注意点:具体过程可参考一下文章【磁盘分区】https://jingyan.baidu.com/article/15622f247dd805fdfcbea5e0.html【VM下安…

    2022年8月10日
    33
  • java打印数组内容

    java打印数组内容在java中直接输出数组只能得到引用地址byte[]bytes={1,2,3,4,5};int[]ints={1,2,3,4,5};System.out.println(bytes);System.out.println(ints);输出[B@1b6d3586[S@4554617c打印数组内容publicstaticvoidmain(Stringargs

    2022年4月29日
    49
  • java基础菜鸟教程_java基础菜鸟教程大全,java入门「建议收藏」

    java基础菜鸟教程_java基础菜鸟教程大全,java入门「建议收藏」java这个词语相信大家都听的耳朵快要起茧了吧,就算是没学过编程的小伙伴也一定听说过java,谁让它如今几乎火遍大江南北呢。这次我们就来讲解一些常见的java基础,希望能够让你们更加了解java。java基本概念一、什么是程序?为了完成任务,执行一系列有序的指令的集合。指令:命令。二、Java程序设计2.1什么是Java?是撰写跨平台,面向对象的计算机语言。2.2Java能做什么?开发桌面应用…

    2022年5月1日
    75

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号