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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • gamma校正到底是个什么玩意儿

    gamma校正到底是个什么玩意儿一.在哪见过、听说过Gamma?  *还用说,AdobeGamma  *常听说MAC的默认Gamma是1.8,PC的是2.2  *我的显卡驱动程序里有Gamma调节  *我下载了一个软件,也可以调节显示器的Gamma  *WinDVD播放器带Gamma校正功能  *ACDSEE的曝光调节里可以调Gamma  *ACDSEE的选项中有Enable

    2022年6月17日
    34
  • 一个导致502 bad gateway的原因[通俗易懂]

    一个导致502 bad gateway的原因[通俗易懂]最近一段时间系统经常出现502badgateway,一开始没在意,以为是偶发现象,后来越来越多改了nginx配置,问题没有解决观察日志,出现502badgateway时系统并没有出异常,猜测可能系统负载较大,把所有定时任务迁移到另外一台服务器,问题仍然没有解决最后通过Jconsole监控JVM发现每5分钟的第0秒,线程和内存曲线都会降为0,这个时候正好是出

    2022年6月18日
    47
  • Advanced System Care官方下载(附激活码)

    Advanced System Care官方下载(附激活码)iobit公司出品的一款系统辅助工具AdvancedSystemCare,它通过对系统全方位的诊断,找到系统性能的瓶颈所在,并将测试结果显示出来。针对系统的瓶颈对其优化,提高效率发挥最大的性能,通过优化后系统性能和网络速度都会有明显提升包含基本功能,注册表清理,垃圾文件清理等。现今系统清理,系统优化工具满天飞,可是很少有对系统全方位的诊断,找到系统性能的瓶颈所在,然后有针对性地进行修改、优化…

    2022年10月20日
    2
  • 开启2019,依然在路上

    依然在路上,享受每一天这一年,简单做,坚持做,沉下心,等待花开。现在已经是2019年2月份了,过完了年,开始上班了,回想过年的那些日子,真的是简单和快乐,如果经常看我博客的伙伴一定知道,我2018年写过很多次我的精神状态(有点抑郁),我很多次调整自己,尝试让自己快乐一点,但是一直很难摆脱那种心理消极不开心的状态。好在我陷入的不是很深,现在我感觉自己已经差不多走出来了,当我这段时间去回想2…

    2022年2月27日
    49
  • 示波器1x和10x_示波器标笔x10和X1的理解

    示波器1x和10x_示波器标笔x10和X1的理解示波器1x10x功能  选择1X档时,信号是没经衰减进入示波器的。而选择10X档时,信号是经过衰减到1/10再到示波器的。当选择10X档时,应该将示波器上的读数也扩大10倍,这就需要在示波器端可选择X10档,以配合探头使用,否则读数会相差10倍。当我们要测量较高电压时,就可以先利用探头的10X档功能,将较高电压衰减后进入示波器。另外,10X档的输入阻抗比1X档要高得多,所以在测试驱

    2022年10月10日
    2
  • 微信公众平台、微信公众平台.小程序、微信.开放平台[通俗易懂]

    微信公众平台、微信公众平台.小程序、微信.开放平台[通俗易懂]一个开发者账号如何上线多个小程序?一个小程序账号对应一个小程序,可发布一个小程序上线。如果需要开发多款小程序,请注册新的账号。https://developers.weixin.qq.com/community/develop/doc/000886957d47f87cf9997f47c5b000小程序怎么发布,一套小程序代码怎么同时发布到不同的小程序上面,发布为体验版和正式版本!点击上传旁边的详情按钮,打开配置页面,修改项目addip,吧这个appid修改成需要覆盖的线上小程序id即可https:

    2022年6月16日
    43

发表回复

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

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