2016-12-03 6 views
0

Я пытаюсь напечатать массивList, но я получаю что-то вроде этого.массив печати из массиваList в java

[[Ljava.lang.String;@506c589e, [Ljava.lang.String;@69d0a921, [Ljava.lang.String;@446cdf90]

Я также пробовал, но никакого результата.

Arrays.toString(list.get(0))

Помогите пожалуйста.

public ArrayList getByName(String name) { 
    try { 
     preSt = con.prepareStatement("SELECT * FROM DATA WHERE name=?"); 
     preSt.setString(1, name); 
     rs = preSt.executeQuery(); 
     ArrayList list = new ArrayList(); 
     int i = 0; 
     while(rs.next()) { 
      Object[] temp = new String[3]; 
      temp[0] = rs.getString("name"); 
      temp[1] = rs.getString("surname"); 
      temp[2] = rs.getString("age"); 
      list.add(i, temp); 
      i++; 
     } 
     System.out.println(list); 
     return list; 
    } catch (Exception ex) { 
     System.out.println("Error: "+ex); 
    } 
    return null; 
} 

ответ

3

Самый простой способ распечатать этот список - перебирать его. Помните, что каждый элемент этого списка сам по себе является массивом, поэтому для его печати вам понадобится Arrays.toString.

List<Object[]> list = new ArrayList<>(); 

// populate it in here 

for(Object[] array : list) { 
    System.out.println(Arrays.toString(array)); 
} 
+0

Я попытался запустить этот код, когда возвращается список, это код, который его получает. 'code' public void getNew (имя списка) { для (Object [] array: name) { System.out.println (Arrays.toString (массив)); }} я получаю ошибку как этот 'code' Ошибка: (15, 30) Java: несовместимые типы: java.lang.Object не могут быть преобразованы в java.lang.Object [] – BARNI

+0

Эта ошибка будет только в том случае, если не изменил объявление 'list', как я показал в первой строке кода в своем ответе. –

+0

Правильно, спасибо вам за поддержку. – BARNI

-1

Вы можете попробовать это

public ArrayList getByName(String name) { 
    try { 
     preSt = con.prepareStatement("SELECT * FROM DATA WHERE name=?"); 
     preSt.setString(1, name); 
     rs = preSt.executeQuery(); 
     ArrayList list = new ArrayList(); 
     int i = 0; 
     while(rs.next()) { 
      Object[] temp = new String[3]; 
      temp[0] = rs.getString("name"); 
      temp[1] = rs.getString("surname"); 
      temp[2] = rs.getString("age"); 
      list.add(i, temp); 
      i++; 
     } 
     for(int i=0;i<list.size();i++){ 
      System.out.println(list[i]); 
     } 
     return list; 
    } catch (Exception ex) { 
     System.out.println("Error: "+ex); 
    } 
    return null; 
} 
+0

Я пробовал этот и gor err как это Ошибка: (63, 40) java: требуется массив, но java.util.ArrayList найдено – BARNI

+0

Это не решит проблему. Вы на самом деле пытались это сделать? –

+0

'list' является' ArrayList'. Вы не можете обращаться к элементам, используя '[]' как массив. – rafid059

1

Поскольку вы уже работаете с массивами, вы можете рассмотреть этот метод, который позволит вам не писать от руки закодированы цикл:

System.out.println(Arrays.deepToString(list.toArray())); 
+0

Спасибо, этот тоже работает. но мне нужно было распечатывать массивы отдельно. – BARNI

Смежные вопросы