2015-02-25 3 views
0

Я хочу передать значение даже индексированного массива (pos) в arraylist (слова), каждый раз pos имеет два или более значения, я получаю OutOfMemoryError. Что-то не так? Потому что я получаю OutOfMemoryError: Java куча пространстваOutOfMemoryError: Java куча пространства на ArrayList

ArrayList<String> token = new ArrayList<String>(); 
    ArrayList<String> words = new ArrayList<String>(); 
    for (String a : token) 
    { 
     temp = temp + " " + a; 
     pos = a.split("[_\\s]+"); 

    } 
     int c=0; 
     for(int i=0; i<=pos.length; i+=2) { 
      words.add(pos[i]); 
      c++; 
    } 
+1

Как определить 'pos'? что является содержимым 'token' – Jens

+0

String pos [] = null; token = word/s – Untitled

+0

Показать содержимое списка 'token'. Тогда только мы сможем решить ваш 'java.lang.ArrayIndexOutOfBoundsException' –

ответ

2

В вашем втором for цикле не увеличиваем I на 2, вы установите я на 2, в результате чего в бесконечном цикле.

использование i+=2 вместо i=+2

Существует еще одна проблема с этим for цикла: это может произойти, что i == pos.length. В этом случае pos[i] вызовет исключение ArrayIndexOutOfBoundsException.

+0

Теперь отредактировал его, ошибка: java.lang.ArrayIndexOutOfBoundsException – Untitled

+0

Я обновил свой ответ –

+1

Этот андер должен быть принят –

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