集合与数组之间的转换
数组->集合:
Arrays.asList的用法:
使用工具类Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法,它的add/remove/clear方法会抛出UnsupportOperationException异常。
说明:
(1)该方法不适用于基本数据类型(byte,short,int,long,float,double,boolean)
(2)该方法将数组与列表链接起来,当更新其中之一时,另一个自动更新
(3)不支持add和remove方法
例子:
String[] str = new String[]{"1","2"};
List list = Arrays.asList(str);
第一种情况:list.add("x");//运行时异常
第二种情况:str[0] = "unv";//那么list.get(0)也随着修改。
集合->数组:
可以使用Collection接口的T[] toArray(T[] arrayToFill)方法:返回这个集合的对象数组,如果arrayToFill足够大,就将集合中的元素填入这个数组中,剩余空间填补null;如果arrayToFill很小,则分配一个新数组,其成员类型与arrayToFill的成员类型相同,其长度等于集合的大小,并填入集合元素。
将ArrayList转换成数组的方法:
ArrayList<X> list=new ArrayList<>();//假设这个集合中有元素
X[] a=new X[list.size()];
list.toArray(a);//此时,没有创建任何新数组