如何从列表集合中获取特定元素?

时间:2012-10-19 06:03:34

标签: java list collections

我有一个列表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 个答案:

答案 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变量中,就像我一样。然后迭代。