有一个 ArrayList<Integer> al
,我想将它的前一半元素复制到另一个 ArrayList<Integer> firstHalf
中。(如果 al 的元素个数为奇数,则 firstHalf
应该多一个元素。)但是,下面的代码会抛出一个 IndexOutOfBoundsException
,并显示 Index: 0, Size: 0
,尽管我不确定这会是什么问题,因为 ArrayList 的索引从 0 开始。此外,我知道可以使用 .arraycopy
,但我想用 for 循环来实现。
int x = al.size()/2 + (al.size()%2) - 1;
for(int i = 0; i < x; i++){
firstHalf.set(i, al.get(i));
}
subList
。 - Sotirios DelimanolissubList()
返回的是原始列表的“视图”,而不是副本。因此,您需要像这样使用firstHalf = new ArrayList(al.subList(0, newSize));
来创建新的列表。 - millimoose