OutOfMemoryError:ArrayList上的Java堆空间

时间:2015-02-25 06:54:56

标签: java arrays arraylist

我想将偶数索引数组(pos)的值传递给arraylist(单词),每次pos有两个或多个值时我得到OutOfMemoryError。 有什么不对吗?因为我得到OutOfMemoryError:Java堆空间

    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 个答案:

答案 0 :(得分:2)

在你的第二个for循环中,你不会将i递增2,你将i设置为2,导致无限循环。

使用i+=2代替i=+2

for循环还有另一个问题:它可能发生在i == pos.length。在这种情况下,pos[i]将导致ArrayIndexOutOfBoundsException。