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


相关推荐

  • pytest的使用_java中方法的调用

    pytest的使用_java中方法的调用Pytest执行用例规则Pytest在命令行中支持多种方式来运行和选择测试用例1.对某个目录下所有的用例pytest2.对模块中进行测试pytesttest_mod.py3.对文件夹进行

    2022年7月30日
  • 齿轮常见故障与特征频率及其谐波、边频带

    齿轮常见故障与特征频率及其谐波、边频带

    2021年11月22日
  • mysql清空表数据_mysql数据库之如何清空表中数据「建议收藏」

    mysql清空表数据_mysql数据库之如何清空表中数据「建议收藏」本篇文章主要讲述的是在数据库中使用清空命令,具有一定学习价值,有需要的朋友可以了解一下,希望能够对你有所帮助。在做数据迁移,数据清洗或者写web项目时要将数据替换更新,那么有时要将表做清空处理常用的清空数据表的SQL语句有如下两种deletefrom表名;truncatetable表名;运行测试我使用的是MySql待测试的表有20000条记录,将其多拷两份以备测试分别运行两个清空表的SQL…

    2022年6月11日
  • 三种算法求两个正整数的最大公约数和最小公倍数;求三个数的最大公约数和最小公倍数「建议收藏」

    三种算法求两个正整数的最大公约数和最小公倍数;求三个数的最大公约数和最小公倍数「建议收藏」第二次作业题目:求两个正整数的最大公约数和最小公倍数。基本要求:1.程序风格良好(使用自定义注释模板),两种以上算法解决最大公约数问题,提供友好的输入输出。提高要求:1.三种以上算法解决两个正整数最大公约数问题。          2.求3个正整数的最大公约数和最小公倍数。一.算法分析    已知结论:a,b的最大公约数*其最小公倍数=a…

    2022年5月17日
  • html设置背景音乐循环播放_html背景音乐循环播放

    html设置背景音乐循环播放_html背景音乐循环播放本文实例讲述了js控制网页背景音乐播放与停止的方法。分享给大家供大家参考。具体实现方法如下:js控制背景音乐bgsound的方法(开始与停止)varbg_sound=document.createElement_x(“bgsound”);//创建背景音乐bg_sound.id=”i_bg”//设置id属性document.body.appendChild(bg_sound);//body中添加背…

    2022年9月24日
  • torch mseloss_pytorch conv1d

    torch mseloss_pytorch conv1dMSELOSSCLASStorch.nn.MSELoss(size_average=None,reduce=None,reduction:str=’mean’)创建一个标准来测量输入x和目标y中每个元素之间的均方误差(L2范数平方)。未减少的损失(即reduction设置为’none’)可以描述为:其中N是batchsize.如果reduction不是’none'(默认为’mean’),那么:x和y是任意形状的张量,每个张量总共有n个元素…

    2022年9月18日

发表回复

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

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