0

我有一个列表 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());
     }    
}

如何获取此子列表中的元素?

谢谢

4

4 回答 4

4

这个怎么样:

list.get(i).get(j)
于 2012-10-19T06:06:16.753 回答
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());
     }  
于 2012-10-19T06:07:03.300 回答
1

你得到list是因为,你将 a 存储list在你的列表中。

此外,您已经声明了一个raw type列表,这不是一个好习惯。

您可以使用增强的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();
}
于 2012-10-19T06:06:57.283 回答
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)); 

此行会将索引处的完整列表添加ilist. 因此,无需将其添加到另一个列表中。就像我一样,只需将它存储在 myList 变量中。然后迭代。

于 2012-10-19T06:08:51.177 回答