java list转成数组,java中数组转成list
如何解决写爬虫IP受阻的问题?立即使用。
相关:《Java视频教程》
在Java中,经常有需要列表和数组之间转换的场景。那么list怎么变成数组呢?下面这篇文章为你介绍。
可以使用List的toArray()或toArray(T[] a)方法将List转换为数组。
List转换成数组
可以将列表转换成数组来调用toArray方法,
有两个重载方法,
通常,使用带有泛型参数的第二种方法:
object[]to array();
T T[]to array(T[]a);2.1.无参数toArray方法
object[]to array();该方法直接将列表转换为Object[]数组。
Java初学者喜欢用这种方法,
没有参数使用方便,
并且在代码编译中没有错误,
使用的错误代码示例如下:
ListString strList=new ArrayList();
strlist . add( list-a );
strlist . add( list-b );
String[]str array=(String[])strlist . to array();结果一运行,就直接报告错误,
无法将对象[]转换为字符串[]:
线程“main”中出现异常java.lang.ClassCastException:
【ljava . lang . object;无法转换为[ljava . lang . string;正确的使用代码如下:
ListString strList=new ArrayList();
object[]str array=strlist . to array();得到了一个通常无用的对象[]。
2.2.支持泛型的toArray方法
T T[]to array(T[]a);该方法接收T类型的数组,
请注意,基本类型不能用作泛型参数。
如果使用int[]类型数组,
需要用Integer[]替换int[]。
使用的示例代码如下:
ListString strList=new ArrayList();
strlist . add( list-a );
strlist . add( list-b );
String[]str array=strlist . to array(new String[strlist . size()]);2.3.toArray方法入参的数组大小
对于下面的代码,
分析初始化后的字符串数组的大小,
以及列表strList.size()的大小,
对返回值的不同影响:
ListString strList=new ArrayList();
strlist . add( list-a );
strlist . add( list-b );
String[] strArray1=新字符串[size];
string[]strarray 2=strlist . to array(strarray 1);strList.size()
现在设置大小=0,
小于strList.size()=2,
代码修改如下:
String[] strArray1=新字符串[0];返回的strArray2和strArray1不是同一个对象。
2.3.2.size=strList.size()
现在设置size=strList.size(),
代码修改如下:
String[]strarray 1=new String[strlist . size()];返回的strArray2和strArray1是同一个对象。
所以下面两段代码是等价的,
得到strArray是我们预期的结果:
String[]str array=strlist . to array(new String[strlist . size()]);
String[]strArray=new String[strlist . size()];
strlist . toarray(strArray);strList.size()
现在设置size=strList.size() 1,
代码修改如下:
String[] strArray1=新字符串[strlist . size()1];返回的strArray2和strArray1是同一个对象,
但是数组的最后一个元素为空,
如果数组中的元素比列表中的多,
紧接在列表被复制之后的数组末尾被设置为空,
即strArray1[strList.size()]=null,
这有助于调用者确定数组的真实长度,
如果用strList.size() 2初始化数组,
数组的倒数第二个元素为空。
更多编程知识请访问:编程教学!以上是java中如何将list转换成array。更多详情请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。