[英]How to add an object from an ArrayList to another ArrayList in another class
[英]How to add an empty arrayList to another arrayList created from a class
我試圖將一個空的arrayList“ patternList”添加到從treeNode類創建的“ treeList” arrayList中,但是我無法用代碼最后一行顯示的空patternList arrayList填充treeList arrayList。 基本上,我要為treeList中的每個項目提供一個空的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));
要創建一個新的空ArrayList
,語法應為new ArrayList<String>()
。
由於您將立即將新創建的列表作為參數傳遞給TreeNode
構造函數,因此不需要變量名。
因此,您的最后一行應該是:
treeList.add(new treeNode ("S 1", null, true, false, 1, new ArrayList<String>()));
同樣,按照慣例,Java類名稱在UpperCamelCase中,而不在LowerCamelCase中。 這就是為什么它是ArrayList
而不是arrayList
。
您的類名稱應為TreeNode
和TestJava
,大寫T
另一件事要注意的是您的變量類型。 通常,您希望變量類型在可用時使用接口,而不是顯式地綁定到特定的實現類。 因此, ArrayList<String> openList = new ArrayList<String>();
使用ArrayList<String> openList = new ArrayList<String>();
定義列表, ArrayList<String> openList = new ArrayList<String>();
使用ArrayList<String> openList = new ArrayList<String>();
,請考慮將openList
的類型openList
為List
。 這僅適用於聲明的左側。 在右側,創建新實例時仍然需要具體的類(即ArrayList
)。 因此,您的聲明將變為:
List<String> openList = new ArrayList<>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.