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;
}

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 图像超分辨之RDN(Residual Dense Network)

    图像超分辨之RDN(Residual Dense Network) 论文:ResidualDenseNetworkforImageSuper-Resolution Github:https://github.com/yulunzhang/RDNhttps://github.com/hengchuan/RDN-TensorFlow 整体结构: RDN(ResidualDenseNetwork)主要包含4个模块。…

  • 流行计算机病毒有哪些,现在流行计算机病毒有哪些[通俗易懂]

    流行计算机病毒有哪些,现在流行计算机病毒有哪些[通俗易懂]现在流行计算机病毒有哪些现在流行计算机病毒有哪些现在流行的计算机病毒有很多!你有去了解过吗?下面由小编给你做出详细的现在流行计算机病毒介绍!希望对你有帮助!现在流行计算机病毒介绍一:国家计算机病毒应急处理中心通过对互联网的监测发现,近期出现一种恶意后门程序变种Backdoor_Agent.ADG。该变种运行后,会自我复制到受感染操作系统指定文件夹下,重命名为可执行文件。随后,该变种会释放操作系统中…

  • Java 变量命名规则[通俗易懂]

    Java 变量命名规则[通俗易懂]变量命名必须满足一系列的条件,不能随意命名示例1:命名规则变量命名只能使用:字母数字$_ 变量第一个字符只能使用:字母$_ 变量第一个字符不能使用:数字 注:_是下划线,不是-减号或者——破折号inta=5;inta_12=5;int$a43=5;inta434=5;//第一个是数字,是不行的int34a=5;示例…

    2022年10月30日
  • 警惕钓鱼网站_进入钓鱼网站会怎样

    警惕钓鱼网站_进入钓鱼网站会怎样概述于今日某伙计,突然在大群里发布了一条大家感兴趣的通知,具体讲是一个在线的腾讯文档,如下图

  • 电脑如何防蹭网?使用防蹭网功能杜绝未知设备连接WiFi

    电脑如何防蹭网?使用防蹭网功能杜绝未知设备连接WiFi

  • JAVA数组去重方法

    JAVA数组去重方法记录JAVA中数组去重方法1利用Set的特性去重复 Setset=newHasSet(); for(intx=0;x<arr.length;x++){ set.add(arr[x]); }最后set里面的值就是arr数组去重后的所有元素,但是set中数据是无序的,会打乱原本的顺序。2如果想保留原本的顺序就使用有顺序,不重复特点的链表的哈希集合 LinkedHasSet<Object>temp=newLinkedHasSet<>()

发表回复

您的电子邮箱地址不会被公开。

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