2016-05-31 5 views
-4

Я хочу получить имя места из базы данных mysql. Я хочу получить все имя местоположения и собирать в ArrayList, и этот список запрашивается setAttribute в jsp.Преобразование строки [] в ArrayList

ArrayList<Bean> SupplyLocation = new ArrayList<Bean>(); 
try { 
//... 
    while(rs.next()) { 
     Bean Location = new Bean(); 
     String supply[] = (rs.getString("location_name")).split(","); 

     for(int i=0; i<supply.length; i++) { 
      Location.setLocation(supply); 
      SupplyLocation.add(Location); 
     }     
    } 
} 

ответ

1

вы создали только один объект Location, поэтому он будет изменен позже в течение цикла, так что вы будете в конечном итоге с одного объекта с supply из supply[lastIndex] в этом объекте, и все ссылки в ArrayList будет указывать на него.

Исправлено:

while(rs.next()) { 
     String supply[] = (rs.getString("location_name")).split(","); 

     for(int i=0; i<supply.length; i++) { 
      Bean Location = new Bean(); 
      Location.setLocation(supply[i]); 
      SupplyLocation.add(Location); 
     } 
} 

Таким образом, вы создаете новый объект Bean для каждой строки в supply массиве, то вы установите строку supply[i] к нему, и вы размещаете ссылку на него в SupplyLocation.

0

Учитывая, что ваша строка через запятую, то сделать это,

String supply[] = (rs.getString("location_name")).split(","); 

     for(int i=0; i<supply.length; i++) { 
      Location.setLocation(supply); 
      SupplyLocation.add(Location.toString()); 
     }   
+0

это не компилируется ... –

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