2014-11-05 4 views
-2

Как я могу получить значение HashTable внутри arrayList?Java HashMap внутри ArrayList

У меня есть следующий код:

public ArrayList resultSetToArrayList(ResultSet rs) { 

    ArrayList list = new ArrayList(); 
    try { 
     ResultSetMetaData md = rs.getMetaData(); 
     int columns = md.getColumnCount(); 
     int rowcount = 0; 
     while (rs.next()) { 
      Hashtable row = new Hashtable(); 
      for (int i = 1; i <= columns; ++i) { 
       row.put(md.getColumnName(i), rs.getString(i)); 
      } 
      list.add(rowcount, row); 
      rowcount++; 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    return list; 
} 
+0

HashMap! = HashTable, пожалуйста, обновите название. – Pshemo

ответ

3

Вы, кажется, использует raw types и Hashtable вместо HashMap. Я думаю, что вы просите что-то вроде

public List<Map<String, String>> resultSetToArrayList(ResultSet rs) { 
    List<Map<String, String>> list = new ArrayList<>(); 
    try { 
     ResultSetMetaData md = rs.getMetaData(); 
     int columns = md.getColumnCount(); 
     while (rs.next()) { 
      Map<String, String> row = new HashMap<>(); 
      for (int i = 1; i <= columns; ++i) { 
       row.put(md.getColumnName(i), rs.getString(i)); 
      } 
      list.add(row); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return list; 
} 

Что касается получения значения обратно из Map, вы можете итерируете Map.keySet() как

for (String key : map.keySet()) { 
    System.out.printf("%s = %s%n", key, map.get(key)); 
} 
+0

Хорошо спасибо, но как я могу получить значения Map внутри arrayList? –

+0

-1 - предлагает улучшения, но на самом деле не отвечает на вопрос. – immibis

+0

Как насчет 'list.get (rowNumber) .get (fieldName)'? – msandiford

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