2017-08-11 263 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]; 
    } 
}