Hola...
 
Y porque no te creas un POJO de tu tabla, de esa manera únicamente creas una lista de ese objeto y los valores los vas pasando a la lista conforme vas recuperando el resultado, regularmente esto es lo mas habitual cuando recuperamos datos indefinidos de nuestra base de datos, te paso un ejemplo... 
POJO...   
Código Java:
Ver original- public class EjercicioDTO { 
-      
-         return Campo1; 
-     } 
-      
-     public void-  setCampo1 (String-  campo1 ) {
 
-         Campo1 = campo1; 
-     } 
-      
-         return Campo2; 
-     } 
-      
-     public void-  setCampo2 (String-  campo2 ) {
 
-         Campo2 = campo2; 
-     } 
- } 
Transacción...   
Código Java:
Ver original- public List<EjercicioDTO> consulta(){ 
-     // Instanciamos un nuevo objeto del tipo EjercicioDTO. 
-     EjercicioDTO ejercicio = null; 
-      
-     // Creamos una lista del tipo EjercicioDTO. 
-     List<EjercicioDTO> list = new ArrayList<EjercicioDTO>(); 
-      
-     // Por cada resultado vamos agregando los valores a la lista. 
-     while (rs.next()){ 
-         ejercicio.setCampo1(rs.getString("Campo1")); 
-         ejercicio.setCampo2(rs.getString("Campo2")); 
-         list.add(ejercicio); 
-     } 
-      
-     // Retornamos la lista 
-     return list; 
- } 
Recorrer lista...   
Código Java:
Ver original- public static void-  main (String[]-  args ) {
 
-     for (EjercicioDTO i : consulta()){ 
-         System- . out- . println("Campo1: " +-  i. getCampo1() + " Campo2: " +-  i. getCampo2());
 
-     } 
- } 
Cualquier duda y/o comentario, aquí estamos. Suerte!