2015-05-21 5 views
2

Когда я выполнить этот запрос я сохранить результат в список объектовКак получить каждое значение из списка <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] 

Но мне нужно получить каждое значение из каждой строки. Как я могу это сделать. Мне нужно, чтобы пройти через каждое значение из результата

+0

Решения ниже правильные, но не забывайте, что если вам нужно внести изменения к объекту «Список» вам нужно будет использовать «Итератор» и его методы;) – Drumnbass

ответ

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)); 
     } 
    } 
+0

Он показывает ошибку Метод toString (long []) в типе Массивы не применим для аргументов (Object) –

+0

@PriyankaShaju попробуйте отредактировать код –

+1

@ Soumitri Pattnaik спасибо .. –

1

Вы можете использовать два вложенных цикла:

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

Это не объект [] ... Он показывает несоответствие типа erro: невозможно преобразовать из типа элемента Object to Object [] –

+0

В вашем код это. –

0

Может быть что-то вроде этого:

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