Java List - 如何获取多维List的列值?

时间:2012-01-13 08:27:53

标签: java list collections

我真的需要一些帮助。我有一个有4列4行的List。我做了这样的事情:

if(list.size()!=0){
 Iterator it = list.iterator();
 while(it.hasNext()){
  System.out.println(it.next().toString());
 }
}

我也试过这个:

for(int i=0; i<list.size(); i++) {
 System.out.println(list.get(i));
}

但两者都有相同的结果:

[Ljava.lang.Object;@58e6b9bc
[Ljava.lang.Object;@13ac133d
[Ljava.lang.Object;@62313e2
[Ljava.lang.Object;@68ee5d93

我对一维列表没有问题但是多维我真的很头疼。请帮忙。

3 个答案:

答案 0 :(得分:3)

好像你的列表包含Object Array作为元素。

[Ljava.lang.Object;@58e6b9bc

这意味着您要打印的对象是数组。要获得列表的完整内容,您还必须迭代此对象数组(列表的每个元素)。试试这个:

for(int i=0; i<list.size(); i++) {
 Object[] objArr = (Object[]) list.get(i);
 for(Object obj: objArr){
    System.out.println(obj);
  }
}

答案 1 :(得分:2)

我认为你的List包含另一个列表的数组。你必须添加另一个循环。

for(Object []ar:list)
 {
   for(Object ele:ar)
    {
     System.out.println(ele);
    }
 }

答案 2 :(得分:1)

如果您的列表中有一个列表,那么它将以这种方式工作:

        for (List<TypeOfYourObjectHere> element : list) {
            for (Object subElement : element) {
                System.out.println(subElement);
            }
        }

如果它是一个数组,那么:

    for (TypeOfYourObjectHere[] element : list) {
        for (Object subElement : element) {
            System.out.println(subElement);
        }
    }

请注意,如果外部列表中没有可迭代对象,则必须考虑覆盖toString()方法等其他方式。

如果你告诉我们你想要达到什么目的,那也会有所帮助。