数组作为 java class 中的属性?

Array as an attribute in a java class?

我的作业由几个小任务组成:

  1. 我必须初始化一个数组并用 200/400/800 个值填充它(每个数量 - 一次)。
  2. 我必须获取数组值并将其放入红黑树中,并将某些条件转换为方法。
  3. 还有一些任务。

我可以在主要 class 中完成这一切,但在我看来,我最好开始一个新的 class - handleArray

如果我开始 class 例如:

public class handlyArray{
    protected int [] arr = new int[];
}

但是如果我那样做,我应该写一个 "get" 和 "set" 函数来获取数组的长度吗?

问题是当我这样做时会弹出一个错误 - "Array initilizer expected"。

我在 class 中的附加功能:

public void fillArray(handleArray arr, int k){
        Random rand=new Random();
        for (int i = 0; i <k ; i++) {
            int value = rand.nextInt(1024);
            arr[i]=value;
        }
    }

- 为 redblackTree 创建节点并将它们插入到树中的函数

关于如何构建它有什么建议吗? 我可以构建完全没有属性的 class 吗?

谢谢!

我担心这是家庭作业,所以我会给你一个概述,然后让你做细节。

是的,您可以在新 class 中构建 getter 和 setter,例如:

public int[] getArray() {
    return arr;
}

public void setArray(int[] arr) {
    this.arr = arr; //
}

至于获取长度,您 不需要 一个方法,因为您可以调用上面的 getter 并询问长度,例如

int arrayLength = handlyArray.getArray().length;

最后是的,你需要先设置你的数组,如果你将一个初始化的数组传递给 setter 就可以了,例如

handlyArray.setArray(new int[] {200, 400, 800});

祝你好运,如果您需要进一步的解释,请随时询问。

我不这么认为。我会在某个地方做一个静态方法:

public static int[] randomArray(int size){
    Random rand=new Random();
    int[] arr = new int[size];
    for (int i = 0; i < size ; i++) {
        int value = rand.nextInt(1024);
        arr[i]=value;
    }
    return arr;
}

现在,至于 red/black 树,我认为 TreeSet 是用 red/black 树实现的。

您可以像这样在方法中初始化数组:

public void fillArray(handlyArray arr, int k) {
    Random rand = new Random();
    arr.arr = new int[k];//<<---------------------Initialize the array
    for (int i = 0; i < k; i++) {
        int value = rand.nextInt(1024);
        arr.arr[i] = value;// Note to fill the array you have to use arr.arr not just arr
    }
}

handlyArray 应该是这样的:

public class handlyArray {
    protected int[] arr;//<<---------------------Just declare the array
}

要使用 fillArray 方法,您可以使用:

a.fillArray(new handlyArray(), length);

您不能设置数组长度。数组的长度必须在初始化期间设置。您可以在 class:

的构造函数中传递数组的长度
public class HandleArray {

  protected int [] arr;

  public HandleArray(int length) {
    arr  = new int[length];
  }
}