gpt4 book ai didi

java - 创建子数组时出错

转载 作者:行者123 更新时间:2023-12-02 06:06:11 24 4
gpt4 key购买 nike

我有一个大小为 5 的数组和以下元素 -

int[] a = new int[] {0, 10, 20, 30, 40};

我想要做的是创建一个子数组,其中包含从a[index]到a[index + size]的元素

为了达到这个目的,这就是我正在做的事情。我正在这样创建一个类构造函数 -

public CoolName(int index, int size, int[] array) {
int counter = 0;
this.a = array;
while(counter < size) {
if(index <= (size + index)) {
array[counter] = array[index];
counter++;
index++;
}
else
break;
}

}

但是,当我尝试使用我的 main 方法输出它时,这就是打印的内容 -

Subarray after modification:
s[0]: 20
s[1]: 300
s[2]: 20
s[3]: 30
s[4]: 40

问题 - 我只想要从索引到索引+大小的元素,也就是说,如果我传递索引2和大小2,我只想要总共2个元素(这是大小) .

这是我的预期输出 -

Subarray after modification:
s[0]: 20
s[1]: 300

所以基本上,我不想显示额外的元素。我知道它打印所有元素是因为我设置了 this.array = a ,所以它得到了原始数组的大小。

但是,有人可以告诉我这个问题的可能解决方法吗?感谢您解答我的问题!

最佳答案

我认为你应该使用Arrays.copyOfRange()创建数组的副本:

public CoolName(int index, int size, int[] array) {
this.a = Arrays.copyOfRange(array, index, index+size);
}

关于java - 创建子数组时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22278067/

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