【问题标题】:Printing an array with no elements?打印一个没有元素的数组?
【发布时间】:2015-06-28 03:44:02
【问题描述】:

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

实现一个类,它接受一个整数数组和一个 int x 作为它的 尺寸。在类中创建一个方法,该方法创建一个新数组,其 长度比数据的长度大一。然后创建一个复制的方法 所有数据的元素到新数组中,并将 x 的值添加到 数组的最后一个元素。创建一个返回所有整数的方法 在新数组中。

这就是我所拥有的

打包taskone;

导入 java.util.*;

类 Arrayplus1 {

    诠释 x;
    整数数据[];

    无效示例(int x){
        这个.x = x+1;
        this.data=new int[x];
    }

    无效 increaseSizeOfArray(int incrementSize) {
            intcopyArray[] = Arrays.copyOf(data, data.length + incrementSize);
            数据 = 复制数组;

    }

    无效打印(){
        System.out.println(Arrays.toString(data));
    }
}

公共类TaskOne {

    公共静态无效主要(字符串[]参数){
        示例任务 = 新示例();
        任务.printall();
    }

}

这只是返回 null。

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

如果我的数组中没有包含任何元素,这怎么可能?我正在尝试遵循作业指南。谢谢。

【问题讨论】:

  • 您似乎尝试使用 printall 方法满足最后一个要求。但要求是返回所有整数,而不是打印它们。此外,您甚至没有正确实现第一个要求。
  • add the value of x into the last element of the array - 你应该将 x 添加到数组中,所以它不会为空。
  • 我建议你从一个空数组而不是 null 开始,即int[] data = { };
  • new example() 创建了 example 类的对象,但我没有看到名为 example 的类。
  • 作业说“实现一个以整数数组和 int x 作为其大小的类”。对我来说,这意味着其中一个构造函数参数是一个整数数组其中已经有数据。第三句中的方法应该是把这些数据复制到新的数组中。

标签: java arrays


【解决方案1】:

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

【讨论】:

  • Java 确实支持创建引用方法的对象,并且始终存在默认构造函数。您不需要构造函数来创建类的对象(每个类都隐含地是 Object 类的子级的副作用)。
【解决方案2】:

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

您可以通过使用constructor 来完成此操作。您可以将传递给构造函数的参数保存为private 变量并使用this 表示法进行引用。 (见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 方法。这实际上一步创建并填充了数组,因此,我将这两个步骤分开以符合问题。

【讨论】:

    猜你喜欢
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    • 2021-01-31
    • 1970-01-01
    相关资源
    最近更新 更多