我有一个数组列表的数组列表:
ArrayList<ArrayList<Character>> NodesAndServices = new ArrayList<ArrayList<Character>>();
我想将NodesAndServices
的每一行添加到另一个数组列表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);
}
}
最佳答案
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);
}
}
关于java - 将元素添加到数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31906677/