gpt4 book ai didi

java - 复制 ArrayList 的前半部分

转载 作者:搜寻专家 更新时间:2023-11-01 04:04:20 28 4
gpt4 key购买 nike

有一个ArrayList<Integer> al ,我想将它的前半部分元素复制到另一个 ArrayList<Integer> firstHalf . (如果 al 有奇数个元素,firstHalf 应该还有一个元素。)然而,下面的代码抛出一个 IndexOutOfBoundsException。 ,并说 Index: 0, Size: 0 ,虽然我不确定这会是个问题,因为 ArrayLists 的索引从 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));
}

最佳答案

List#subList 完全适合这个目的。

int chunkSize = al.size() % 2 == 0 ? al.size() / 2 : (al.size() / 2) + 1;
List<Integer> firstHalf = al.subList(0, chunkSize);

有两种情况需要考虑:

  • 偶数:如果大小为偶数,则 n/2 是分块的正确大小。
  • 奇数:如果大小为奇数,则需要将结果加1,使奇数长度列表具有中间值。

关于java - 复制 ArrayList 的前半部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21587878/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com