数组作为java类中的属性?

时间:2017-08-11 10:56:25

标签: java arrays red-black-tree

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

  1. 我必须初始化一个数组并用200/400/800值(每个数量 - 一次)填充它。
  2. 我必须获取数组值并将其放在红黑树中,并将某些条件转换为方法。
  3. 更多任务。
  4. 我可以在主要课程中完成所有工作,但在我看来,我最好开始一个新的类 - handleArray

    如果我开始上课:

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

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

    问题在于,当我这样做时会弹出一个错误 - “Array initilizer expected”。

    我在课堂上的其他功能:

    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创建节点并将其插入树中的函数

    有关如何构建它的任何建议? 我可以构建完全没有属性的类吗?

    谢谢!

4 个答案:

答案 0 :(得分:1)

我担心这是作业,所以我会给你一个概述并让你详细说明。

是的,您可以在新课程中构建一个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});
祝你好运,随时可以询问你是否需要进一步解释。

答案 1 :(得分:1)

您可以在方法中对数组进行inisialize,如下所示:

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
    }
}

and handlyArray应该是这样的:

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

使用fillArray方法可以使用:

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

答案 2 :(得分:0)

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

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;
}

现在,对于红/黑树,我相信TreeSet是用红/黑树实现的。

答案 3 :(得分:0)

您无法设置数组长度。必须在初始化期间设置数组的长度。您可以在类的构造函数中传递数组的长度:

public class HandleArray {

  protected int [] arr;

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