打印没有元素的数组?

时间:2015-04-21 06:24:14

标签: java arrays

我有几个问题。我正在做家庭作业,但遇到了一些令人困惑的事情。 (我正在上一堂课,对错误感到抱歉。)

  

实现一个接受整数数组和int x的类   尺寸。在类中创建一个方法,创建一个新的数组   length是数据长度的一个。然后创建一个复制方法   将所有数据的元素放入新数组中并将x的值添加到   数组的最后一个元素。创建一个返回所有整数的方法   在新阵列中。

这就是我所拥有的

package taskone;

import java.util.*;

class Arrayplus1 {

    int x;
    int data[];

    void example(int x) {
        this.x = x+1;
        this.data= new int[x];
    }

    void increaseSizeOfArray(int incrementSize) {
            int copiedArray[] = Arrays.copyOf(data, data.length + incrementSize);
            data = copiedArray;

    }

    void printall() {
        System.out.println(Arrays.toString(data));
    }
}

public class TaskOne {

    public static void main(String[] args) {
        example task = new example();
        task.printall();
    }

}

这只是返回null。

我的问题是上述任务的最后一点。 “创建一个方法来返回新数组中的所有整数。”

当我的数组中没有包含任何元素时,这怎么可能?我正在尝试遵循分配指南。感谢。

2 个答案:

答案 0 :(得分:0)

首先,您无法创建方法的对象。您可以创建类的对象。每当你有一个类时,你应该至少有一个构造函数。此外,您的方法似乎应该返回一些数组和int值。实际上,我认为这段代码甚至不会编译。我建议你复习一下你的书。

答案 1 :(得分:0)

  

实现一个采用整数数组和int x作为其大小的类。

您可以使用constructor来完成此操作。您可以使用this表示法将传递给构造函数的参数保存为private变量和引用。 (见this

public class TaskOne {
    private int [] array;
    private int x;
    public TaskOne(int [] array, int x) {
        this.array = array;
        this.x = x;
    }
}
  

在类中创建一个方法,创建一个长度为的新数组   比数据长度大一个

在这里,您只需创建一个新数组。确保将新数组的长度设置为array的长度加1(以容纳额外元素x

private int [] data = null;

public void createNewArray() {
    this.data = new int[this.array.length + 1];
}
  

然后创建一个方法将所有数据的元素复制到新数组中   并将x的值添加到数组的最后一个元素中。

public void populateArray() {
    for (int t = 0; t < this.array.length; t++) {
        data[t] = this.array[t];
    }
    data[array.length] = this.x;
}
  

创建一个方法以返回新数组中的所有整数

这被称为getter方法。你

public int [] getClone() {
    return this.data;
}

您可能已经注意到我没有使用Arrays.copyOf方法。这实际上是一步创建并填充数组,因此,我将两个步骤分开以符合问题。