2013-07-09 57 views
2

我需要不斷在樹中創建節點。我想他們的名字,因爲他們來了爲node1node2node3自動分配編號的變量名稱

我知道如何與基本對象實例手動執行此操作(比如我有一個Node類):

Node node1 = new Node(); 

我的問題是否有可能,如果用戶輸入總節點數(k),我可以自動創建這個數:node1,node2,node3,...,nodek

謝謝你的任何建議;我覺得我總是卡住這個概念在Java中,如何找到一個很好的解決方案....

+7

這聽起來像你需要[數組](http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html)或[集合](http://docs.oracle.com/JavaSE的/教程/集合/)。 –

+0

您可以將它們添加到集合中。 – nachokk

+0

變量名稱僅在編譯時有用。您可以將一個屬性添加到名爲'name'的節點。這將會更容易,更實用。 – BevynQ

回答

3

你可以使用一個集合Read this Collections tutorial

例如一個List

例子:

int n= someInteger; 
List<Node> nodeList = new ArrayList<>(n); 
nodeList.add(new Node(0)); 
nodeList.add(new Node(1)); 
. 
. 
. 
nodeList.add(new Node(n)); 

或者使用一個循環,如果你設置的東西secuentially

for(int i=0;i<n;i++){ 
    nodeList.add(new Node()); 
} 
+0

@arshajii編輯:) – nachokk

+0

另外還有一件事:寫出所有這些'nodeList.add(...),這首先破壞了使用集合的全部目的:我會堅持循環。 – arshajii

1

變量名稱對程序員來說只是一種方便,在編譯代碼後甚至不會記錄。因此,「動態」命名變量是不可能的。

但是,你可以使用一個Node[]的建議:

Node[] nodes = new Node[k]; // creates an array of length k 

for (int i = 0; i < k; i++) // adds a new node at each index 
    nodes[i] = new Node(); 

現在,你「nodeK」nodes[k-1]