想复制一个ArrayList,本来想这样使用:
ArrayList src = new ArrayList();
// 中间省略了src的赋值操作
// ...
ArrayList dest = new ArrayList();
Collections.copy(dest,src);
谁知,报错:
错误:
IndexOutOfBoundsException - 如果目标列表太小而无法包含整个源列表。
经过追踪,发现(全是“空”):
public ArrayList(); // 创建一个初始容量为10的列表
public ArrayList(int initialCapacity) // 构造一个具有指定初始容量的空列表。
最后,采取这样的方式:
ArrayList<String> dest = new ArrayList<String>(src);
自己学艺不精,原来这么一个构造函数就可以解决问题!