gpt4 book ai didi

java - 复制数组并使用 printall() 方法将其大小加 1 以返回新数组中的所有 int

转载 作者:太空宇宙 更新时间:2023-11-04 13:54:49 26 4
gpt4 key购买 nike

这是一项我未能完成的家庭作业。我已经很接近了,但我无法理解如何完成。任何帮助是极大的赞赏。

  • 实现一个 Arrayplus1() 类,它接受一个整数数组数据和一个 int x 作为其大小。在类 Arrayplus1() 中创建一个方法创建一个新数组,其长度比数据长度大 1。
  • 然后创建一个方法将所有数据元素复制到新数组中,并将 x 的值添加到数组的最后一个元素中。
  • 创建 printall() 方法以返回新数组中的所有整数。
  • 我不知道如何处理 size = i 部分。

代码:

package addarray19;

class Arrayplus1{
int[]array ={1,2,3,4,5};
int[]newarray = array;
int size;
int data;

public Arrayplus1(int i){
size = i;
}

class Arrayadd{
int[]newarray = new int[array.length +1 ];
}

void printall(){
for(int i = 0; i < array.length; i++){
newarray[i] = array[i];
}
array = newarray;
}
void copy(){
System.arraycopy(array, 0, newarray, 0, array.length);
newarray[5] = 5;
}

}

public class Addarray19{
public static void main(String[] args) {

Addarray19 array = new Addarray19();
array.printall();
}
}

最佳答案

如果我正确地阅读了您的要求,您应该将 int x 附加到您的 data 数组中。基于该假设,编写例程以首先“增长”数据数组的指令可能很容易实现。首先,将默认值设置为 1 (因为向空数组添加任何内容都应该是单元素数组)。接下来,检查 data 是否不为空。如果不是,则取其长度并添加 1 作为大小。然后返回一个新的int[],长度为size,如

static int[] growArray(int[] data) {
int size = 1;
if (data != null) {
size = 1 + data.length;
}
return new int[size];
}

接下来,向数组添加的方法是首先增大数组,然后复制值,最后在末尾附加新元素。就像,

private static int[] addToArray(int[] data, int x) {
int[] array2 = growArray(data);
if (data != null) {
System.arraycopy(data, 0, array2, 0, data.length);
}
array2[array2.length - 1] = x;
return array2;
}

然后,您可以实现所需的 Arrayplus1 构造函数,例如

private int[] data;
public Arrayplus1(int[] data, int x) {
this.data = addToArray(data, x);
}

接下来,printall应该做类似的事情

public void printall() {
System.out.print(data[0]);
for (int i = 1; i < data.length; i++) {
System.out.printf(", %d", data[i]);
}
System.out.println();
}

最后,您的 main() 方法应该实例化 Arrayplus1 实例...例如,

public static void main(String[] args) {
int[] in = { 1, 2, 3 };
int x = 4;
Arrayplus1 a = new Arrayplus1(null, 1);
a.printall();
Arrayplus1 b = new Arrayplus1(in, x);
b.printall();
}

输出是

1
1, 2, 3, 4

关于java - 复制数组并使用 printall() 方法将其大小加 1 以返回新数组中的所有 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29932911/

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