如何从List <object>中检索每个值

时间:2015-05-21 06:39:17

标签: java arrays list spring-mvc object

当我执行此查询时,我将结果存储到列表对象

Query vodquery = session.createQuery(
    "select vod.videoid,vod.videotitle,alb.language,alb.genre "+
    "from Videos as vod,Album as alb "+
    "where vod.videoType =:videotype and vod.albumId=alb.id "+
    "group by vod.videoId").setParameter("videotype","MOV");
List<Object> videolist = vodquery.list();

我需要检索每个结果,但是当我使用此代码时

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

结果是

[Ljava.lang.Object;@b7e548
[Ljava.lang.Object;@12e0986
[Ljava.lang.Object;@1735396

当我使用此代码时

for (int i=0; i<videolist.size(); i++){
   Object[] row = (Object[]) videolist.get(i);
   System.out.println("Element "+i+Arrays.toString(row));
}

得到了这样的结果

Element 0[VOD1000, sdf, English, Action, null, d, Entertainment, Action, comody, 0, null, null, dddddd]

Element 1[VOD1002, sdf, NONE, NONE]
Element 2[VOD1004, sdf, NONE, NONE]
Element 3[VOD1005, sdf, NONE, NONE]

但我需要从每一行中获取每个值。我怎样才能做到这一点。我需要查看结果中的每个值

3 个答案:

答案 0 :(得分:1)

您可以使用两个嵌套循环:

for (Object[] row : videolist){
    for(Object value : row) {
        // use value here
    }
}

答案 1 :(得分:1)

更改循环:

for (int i=0; i < videolist.size(); i++){
       Object[] row = (Object[]) videolist.get(i);
       for(Object obj : row) {
            System.out.println("Element "+ i +obj));  
       } 
    }

答案 2 :(得分:0)

也许是这样的:

for (int i=0; i<videolist.size(); i++){
   Object[] row = (Object[]) videolist.get(i);
    for(Object value : row) {
        // use value here
    }
}