本文主要介绍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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。