如何将空arrayList添加到从类创建的另一个arrayList

时间:2016-08-22 00:37:07

标签: java arraylist

我正在尝试添加一个空的arrayList" patternList"到" treeList"从treeNode类创建的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));

1 个答案:

答案 0 :(得分: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<>();
相关问题