2013-04-11 2 views
0

У меня есть массив строк, как,добавления элементов из списка в массив строк

String[] abc= new String[]{}; 

и мой список имеет несколько значений. Я перебираю список и добавляю каждый элемент списка в строковый массив.

for(int i=0; i<errList.size(); i++) 
      { 
       abc[i] = errList.get(i).getSrceCd(); 
      } 

errList.size() имеет 6 значений. Но когда выполняется цикл for, я получаю java.lang.ArrayIndexOutOfBoundsException. Любые входы?

+0

ваш массив строк объявлен неправильно – ChadNC

ответ

5

Вы создаете объект String[] нулевой длины; поэтому, когда вы пытаетесь присвоить элемент abc[i], он обращается к индексу не в пределах ваших границ 0 <= i < 0.

Вы должны выделить abc длиной вместо:

String[] abc= new String[errList.size()]; 
for(int i=0; i<errList.size(); i++) 
{ 
    abc[i] = errList.get(i).getSrceCd(); 
} 
0

Вам нужно увлечь массив строк тем же размером, что и список. Это не динамично. Возможно, вы можете сказать, чего вы пытаетесь достичь с помощью этого упражнения.

0

Пробовали ли вы использовать для каждого цикла, который широко используется в рамках сбора?

0

String[] abc = errList.toArray(new String[0]);

Или:

String[] abc = new String[errList.size()];  
errList.toArray(abc); 
0

Я бы просто сделать это

String[] abc= errList.toArray(new String[errList.size()]); 
Смежные вопросы