在java中访问Multiple ArrayList的对象元素

时间:2017-03-04 19:57:46

标签: java class object arraylist

我无法访问多个ArrayList元素。代码如下所示,它无法访问值5或6.我的IDE不接受我的代码的最后一个语句System.out.println(specification.get(0).get(0).value);如何在ArrayList中获取对象的元素,这是在数组列表中。

class Node {

    int value;
    boolean explored;

    Node(int v) {
        value = v;
        explored = false;
    }

    int getValue() {
        return value;
    }
}

class Board {

    ArrayList<ArrayList> specification;
    ArrayList<Node> speci_node;

    Board() {
        speci_node = new ArrayList<Node>(1);
        speci_node.add(new Node(5));
        speci_node.add(new Node(6));

        specification = new ArrayList<ArrayList>(1);
        specification.add(speci_node);
        System.out.print(specification.get(0).get(0).value);  // variable 'value' is not found error....
    }
}

2 个答案:

答案 0 :(得分:3)

虽然@ YCF_L的回答是正确的,但您也可以指定内部ArrayList的泛型类型以避免强制转换:

specification = new ArrayList<ArrayList<Node>>(1);

此外,NodeBoard类需要位于同一个包中,因为value成员是包私有的,因此无法在{{1}的包之外访问}类。但这似乎就是这种情况......

答案 1 :(得分:1)

你应该像这样投射你的元素:

System.out.print(( (Node) specification.get(0).get(0)).value);
//-----------------|-^^^-|-----------------------------------

这将返回5