,,Java集合List与Array的相互转换

,,Java集合List与Array的相互转换

本文主要介绍Java集合列表和数组之间的相互转换。边肖认为这很好。现在分享给大家,给大家一个参考。来和边肖一起看看吧。

List 转 Array

要使用将集合转换为数组的方法,必须使用集合的toArray(T[] array)。传入完全相同类型的数组,其大小为list.size()。

反例:直接使用toArray无参数方法有问题。此方法的返回值只能是Object[]类。如果强制使用其他类型的数组,将会出现ClassCastException错误。

反例:

公共静态void main(String[] args)引发异常{

ListString list=new ArrayList string();

list . add(' A ');

list . add(' B ');

list . add(' C ');

String[]array=(String[])list . to array();

}

例外情况:

复制代码如下:

线程“main”Java . lang . classcastexception中出现异常:[ljava . lang . object;无法转换为[ljava . lang . string;

示例:

公共静态void main(String[] args)引发异常{

ListString list=new ArrayList string();

list . add(' A ');

list . add(' B ');

list . add(' C ');

//使用没有显式类型转换的泛型

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

system . out . println(array[0]);

}

Array 转 List

当使用工具类Arrays.asList()将数组转换为集合时,不能使用它来修改与集合相关的方法。它的add/remove/clear方法将引发UnsupportedOperationException。

注意:asList返回的对象是一个数组内部类,没有修改集合的方法。Arrays.asList体现了适配器模式,只是转换了接口,后台数据还是数组。

String[] str=new String[] { 'a ',' b ' };

list list=arrays . aslist(str);

第一种情况:list . add(' c ');运行时异常。

线程“main”Java . lang . unsupportedoperationexception中出现异常

第二种情况:list[0]=' gujin ';然后list.get(0)将被相应地修改。

描述:

@SafeVarargs

@SuppressWarnings('varargs ')

公共静态测试列表asList(T.a) {

返回新的数组列表(a);

}

这个ArrayList不是java.util中的ArrayList,而是内部ArrayList,不提供add等修改操作。

私有静态类ArrayListE扩展AbstractListE

实现RandomAccess,java.io.Serializable

{

private static final long serial version uid=-2764017481108945198 l;

私人决赛E[]a;

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: