2016-08-22 110 views
0

我想添加一個空arrayList「patternList」到從treeNode類創建的「treeList」arrayList,但我遇到了麻煩填充treeList arrayList空patternList arrayList顯示在代碼的最後一行。基本上我想爲treeList中的每個項目指定一個空arrayList,稍後我將填充它。謝謝。如何將一個空arrayList添加到從類創建的另一個arrayList

import java.util.*; 
import java.util.ArrayList; 
import java.util.List; 

public class testJava{ 

    public static class treeNode { 
     String nodeName; 
     String pNodeName; 
     String fNodeName; 
     boolean begNode; 
     boolean targetNode; 
     int nodeNumber; 
     //String pattern; 
     ArrayList<String> patternList = new ArrayList<String>(); 
     public treeNode (String nodeName, String pNodeName, boolean begNode, boolean targetNode, int nodeNumber, ArrayList<String> patternList) 
     { 
      this.nodeName = nodeName; 
      this.pNodeName = pNodeName; 
      this.begNode = begNode; 
      this.targetNode = targetNode; 
      this.nodeNumber = nodeNumber; 
      this.patternList = patternList; 
      //this.pattern = pattern; 
     } 
    } 

    public static void main (String[] args){ 
     ArrayList<treeNode> treeList = new ArrayList<treeNode>(); 
     ArrayList<String> openList = new ArrayList<String>(); 
     ArrayList<String> closeList = new ArrayList<String>(); 
     ArrayList<String> treePath = new ArrayList<String>(); 
     String currentNode = ""; 
     String targetNode = ""; 
     int smallestNodeCount = 0; 
     int tempNodeCount = 0; 
     int openListCount = 0; 
     String currentPattern = "" ; 

     treeList.add(new treeNode ("S 1", null, true, false, 1, ArrayList<string> patternList)); 

回答

1

要創建一個新的空ArrayList,語法將new ArrayList<String>()

由於您立即將新創建的列表作爲參數傳遞給您的TreeNode構造函數,因此不需要變量名稱。因此

你的最後一行應該是:

treeList.add(new treeNode ("S 1", null, true, false, 1, new ArrayList<String>())); 

另外,按照慣例,Java類名是UpperCamelCase,而不是在lowerCamelCase。這就是爲什麼它是ArrayList而不是arrayList

您的分類名稱應該是TreeNodeTestJava,大寫字母T

要注意的另一件事是你的變量類型;通常情況下,您希望變量類型在可用時使用該接口,而不是顯式綁定到特定的實現類。因此,不要使用ArrayList<String> openList = new ArrayList<String>();來定義您的列表,請考慮將openList的類型簡寫爲List。這隻適用於聲明的左側。在右側,創建新實例時仍然需要具體類(即ArrayList)。您的聲明因此變爲:

List<String> openList = new ArrayList<>(); 
相關問題