集合与数组之间的转换

数组->集合:

  Arrays.asList的用法:

   使用工具类Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法,它的add/remove/clear方法会抛出UnsupportOperationException异常。 

     说明:

    (1)该方法不适用于基本数据类型(byte,short,int,long,float,double,boolean

    (2)该方法将数组与列表链接起来,当更新其中之一时,另一个自动更新

    (3)不支持addremove方法

   例子:   

               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);//此时,没有创建任何新数组

 

posted @ 2019-06-11 21:26  白春雨  阅读(5478)  评论(0编辑  收藏  举报