这是我无法完成的家庭作业。我很接近,但我很难理解如何完成。任何帮助是极大的赞赏。
代码:
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();
}
}
答案 0 :(得分:0)
我认为你忽略了第一个要求。构造函数应该使用BOTH整数数组和大小的int。类中的int应该表示并记住int [] array
中存储的数据的长度class Arrayplus1{
int[] array;
int size;
public Arrayplus1(int[] a, int i){
array = a;
size = i;
}
}
答案 1 :(得分:0)
如果我正确地阅读了您的要求,您应该将int x
附加到data
数组中。基于这个假设,将例程写入第一个&#34;增长&#34;数据数组可能很容易实现。首先,将默认值设置为1
(因为向空数组添加任何内容应该是一个元素数组)。接下来,检查data
是否为空。如果它没有采取它的&#39;长度并添加一个size
。然后return
新的int[]
长度为size
,如
static int[] growArray(int[] data) {
int size = 1;
if (data != null) {
size = 1 + data.length;
}
return new int[size];
}
接下来,你对数组add
的方法是首先增长它然后复制值,最后在最后追加新元素。像,
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