我正在進行練習,並遇到問題。在java中的ArrayList中追加對象
在NodeList
,創建一個static method
Node arrayToNode(String[] arr)
其中字符串數組轉換成列表。你的方法應該創建第一個Node
, ,然後再遍歷數組的其餘部分,在每一步創建一個Node
,並使用 append將創建的節點放在列表的末尾。在 命令行參數上測試此方法。如果array
爲空,會發生什麼情況?
目前我的代碼是這樣的
public static Node arrayToNode(String[] arr) {
Node first = new Node(arr[0]);
ArrayList<Node> list = new ArrayList<Node>();
for(int i=1; i<arr.length;i++){
list.add(new Node(arr[i]));
}
}
,你可以看到有沒有return語句呢。 我不確定編寫練習的人是否寫錯Node
而不是void
,但我不能問他。
append方法是
public void append(Node fin){
if(next==null)
next=fin;
else
append(next);
}
和實例變量和構造函數如下:
public String value;
public Node next;
public Node(String s){
value =s;
next=null;
}
我完全不清楚這意味着什麼把節點在列表的末尾因爲ArrayList
不斷擴大。 此外,我有關於如何使用它在TestNode
類中使用部署append方法的問題。
感謝您的評論。 我現在已經意識到問題所在,並做出了適當的修改。
public static Node arrayToNode(String[] arr){
Node first = new Node(arr[0]);
for(int i=1; i<arr.length;i++){
Node nd = new Node(arr[i]);
nd.append(nd);
first.next=nd;
}
return first;
}
您能否看到這是否正確?
我很確定你的任務並不想讓你創建一個新的ArrayList,而是創建一個鏈接到'下一個節點'的Node對象鏈,如果你有一個'Node',你可以沿着'.next()'方法獲取整個列表內容。 –
那麼編譯器如何允許它既然你已經提到了返回類型作爲Node,但是你在此時沒有返回任何東西,那麼compliler應該給出錯誤 – Deepak