将元素添加到Array列表

时间:2015-08-09 17:06:09

标签: java arraylist

我有一个数组列表的数组列表:

ArrayList<ArrayList<Character>> NodesAndServices = new ArrayList<ArrayList<Character>>();

我想将NodesAndServices的每一行添加到另一个arraylist allChars

    List<Character> allChars = new ArrayList<Character>();

    for (int i = 0; i < NodesAndServices.size(); i++) {
    List<Character> eachListRow = NodesAndServices.get(i);

    for (List<Character> chr : eachListRow) { //Error
        for (char ch : chr) {
            allChars.add(ch);
        }
    }
}

但是你得到编译时错误:

required: java.util.list
found: java.lang.character

更新

for (int i = 0; i < NodesAndServices.size(); i++) {
    List<Character> eachListRow = NodesAndServices.get(i);

    for (Character chr : eachListRow.get(i)) { //Error,foreach not applicable to type character

            allChars.add(each);
    }
}

2 个答案:

答案 0 :(得分:1)

a不是列表列表。试试这个:

eachListRow

<强>更新

 for (Character chr : eachListRow) {...

答案 1 :(得分:1)

for (List<Character> chr : eachListRow) { //Error

当编写像这样的增强for循环时,循环变量chr将获取集合eachListRow的每个元素的值,即List<Character>。因此,chr必须是Character类型,而不是List<Character>

然后你会意识到你甚至不需要嵌套循环:

for (Character chr : eachListRow) { // OK
    allChars.add(ch);
}

注意:你也可以在第一个循环中使用增强的for循环,从而得到以下代码,这样可以更好地阅读:

List<Character> allChars = new ArrayList<Character>();

for (List<Character> eachListRow : NodesAndServices) {
    for (Character chr : eachListRow) {
        allChars.add(ch);
    }
}