我有一个列表myCollection,它是像
这样的列表的集合myCollection = [[1,2,3,4],[1,2,3,4],[1,2,3,4]]
迭代此列表并通过get(i)方法我将得到一个特定的子列表。
for (int i = 0; i < myCollection.size(); i++) {
System.out.println(myCollection.get(i));
}
我尝试为子列表创建一个新列表并迭代它但我得到的完整列表为[1,2,3,4]
for (int i = 0; i < myCollection.size(); i++) {
List list = new ArrayList();
list.add(myCollection.get(i));
for (int j = 0; j < list.size(); j++) {
System.out.println("list.get(j) -- "+list.get(j).toString());
}
}
如何获取此子列表中的元素?
由于
答案 0 :(得分:4)
这个怎么样:
list.get(i).get(j)
答案 1 :(得分:3)
你可能想尝试这样的事情:
List list = new ArrayList();
for (int i = 0; i < myCollection.size(); i++) {
list.add(myCollection.get(i));
}
最好将打印机分开:
for (int j = 0; j < list.size(); j++) {
System.out.println("list.get(j) -- "+list.get(j).toString());
}
答案 2 :(得分:1)
您收到list
因为您在列表中存储了list
。
此外,您已声明raw type
列表,这不是一个好习惯。
您可以使用enhanced-for循环从每个嵌套列表中获取单个元素: -
myCollection = [[1,2,3,4],[1,2,3,4],[1,2,3,4]]
for(List<Integer> list: myCollection) {
for (Integer intVal: list) {
System.out.print(intVal + " ");
}
System.out.println();
}
答案 3 :(得分:1)
请尝试以下代码:
for (int i = 0; i < myCollection.size(); i++)
{
List myList = myCollection.get(i);
for (int j = 0; j < myList.size(); j++)
{
System.out.println("myList.get(j) -- "+myList.get(j).toString());
}
}
你在做的是:
list.add(myCollection.get(i));
此行会将索引i
的完整列表添加到list
。因此,无需将其添加到另一个列表中。只需将其存储在myList变量中,就像我一样。然后迭代。