2017-08-11 56 views
-1

我有它由几个小任务的分配:数组作为java类中的属性?

  1. 我有,用来初始化一个数组,并用200/400/800值填充(各量 - 一次)。
  2. 我必须采取数组值并将它放在一个红色的黑色树中,并将某些条件转换为方法。
  3. 一些更多的任务。

我能做到这一切在主类,但是在我看来,我会好起来开始新的类 - handleArray

如果我开始一个类,如:

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

但如果我这样做,我应该写一“获取”和“设置”功能,以获取数组的长度是多少?

问题是,当我做这个时会弹出一个错误 - “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创建节点,并将其插入到树

如何构建它的任何建议一个功能? 我可以建立没有任何属性的类吗?

谢谢!

+0

当你初始化一个数组时,你必须指定数组的大小。 'new int [];'无效。它必须是'new int [100];',或者你必须显式指定值:'new int [] {1,2,3,4};'。请注意,一旦创建数组的大小就会被修复(数组无法调整大小)。 – Jesper

+0

我明白了。但是,如果我需要三种不同的尺寸,我该怎么办? – Alan

+0

您可以在您的类的构造函数中初始化该数组,并将该长度作为构造函数参数传入。 – khelwood

回答

1

我很担心这是作业,所以我会给你一个概述,让你做具体。

是的,你可以建立自己的新类getter和setter,是这样的:

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

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

至于越来越长,你不需要的方法为它你可以调用上面的getter并问它的长度,例如

int arrayLength = handlyArray.getArray().length; 

最后是你需要先设置你的阵列,如果你在一个初始化数组的制定者,将做精细遍,例如

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

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

+0

这是作业:-)我写下来 - 作业。谢谢你的帮助! – Alan

+0

@Alan我只是承认这一点。如果您同意给出的任何答案,请在您接受的答案中打上正确的答案。 –

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与红/黑树实现。

+0

你会做主要方法中的一切,就是这样吗? – Alan

+1

@Alan随机数组的初始化,肯定的。 –

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

和handlyArray应该是这样的:

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

使用fillArray方法,你可以使用:

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

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

public class HandleArray { 

    protected int [] arr; 

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