这是一项我未能完成的家庭作业。我已经很接近了,但我无法理解如何完成。任何帮助是极大的赞赏。
- 实现一个 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/