在使用 Collections.copy(dest,list)时发生异常:
查看源代码:
说明:源列表的个数>目标列表的个数
解决:
指的长度是List里的size()方法值,我们都知道new ArrayList()初始化的时候size()等于0,即便是你使用new ArrayList(10)来初始化,也只是预设了一个initialCapacity==10的存储空间,size()还是等于0。因此在使用Collections.copy之前,需要把目的List加一些空的元素,直到目的List的size()值与源List的size()值等长(或更长)。同理LinkedList初始化的时候size()值也是等于0。
那必须这样写:
//创建数组
String[] arrs={"this","is","collection","test","and","we","can","learn","how","to"};
//源列表集合
List<String> list= Arrays.asList(arrs);
//必须开辟大小10
List dest = Arrays.asList(new String[list.size()]);
System.out.println("dest集合的大小为: " + dest.size());
Collections.copy(dest,list);