ArrayIndexOutOfBoundsException ArrayLists数组

时间:2013-03-27 13:38:00

标签: java arrays arraylist indexoutofboundsexception

我创建了一个大小为45的arraylists数组。由于某种原因,我得到一个ArrayOutOfBoundException。

这是我收到错误的地方:

    String temp;
    Scanner sc = new Scanner(str1);
    while(sc.hasNext())
    {
        temp = sc.next();
        int len = temp.length();
        if(len > 0)
            wordsByLen[len - 1].add(temp);  //throwing the error here with exception of 59
    }

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您是否正确初始化了数组wordsByLen?我怀疑不是。

我认为您需要做的是使用正确的长度初始化数组,然后使用每个可能的字长的集合。例如(伪代码)

for (int i = 0; i < MAXWORDLENGTH; i++) {
   wordsByLen[i] = new ArrayList<String>();
}

我可能会改用Map<Integer,List<String>>。你必须以类似的方式初始化它,但它将是一个更可靠的机制。您不能对可以记录单词的最大字符数有任意限制。