如何正确填充 ArrayList<String> 类型的 ArrayList?

How to properly populate an ArrayList of type ArrayList<String>?

我是一名 APCSA 学生,我正在尝试回答教科书中的一个问题。基本上,给定一个不同单词的 ArrayList,我需要创建和 return 一个 ArrayList 类型的 ArrayList,其中包含 26 "buckets",每个包含以 "a" 开头的所有单词,然后是 "b",依此类推,直到初始的 ArrayList 完全按单词的第一个字母排序。该方法只能解析初始 ArrayList 一次,不能更改它。就我现在的代码而言,我不断收到越界错误。如果有人能指出我正确的方向,那就太棒了,谢谢。这是我目前拥有的,我不知道它是否接近正确:

public static ArrayList<ArrayList<String>> sortWords(ArrayList<String> words)
{
    ArrayList<ArrayList<String>> buckets = new ArrayList<ArrayList<String>>(26);
    String letters = "abcdefghijklmnopqrstuvwxyz";


    for(int i = 0; i < 26; i++)
    {
        //keeps track of current letter in letters
        int let = 0;

        for(int word = 0; word < words.size(); word++)
        {
            //if first letter of current word equals letter for current bucket
            if(letters.substring(let,let+1).compareToIgnoreCase(words.get(word).substring(0, 1)) == 0)
                buckets.get(i).add(words.get(word));
        }
        let++;
    }

    return buckets;
}

那里的“26”只是说数组列表经过优化可以处理 26 个元素。它仍然是一个空数组列表,其中包含零个元素。在 for (26) 循环的顶部,尝试添加 buckets.add(new ArrayList<>());.

此外,你没有按照问题的要求去做;你循环输入 26 次,所问的问题希望你只循环一次。 (因为这是家庭作业,如果我只是为你钓到这条鱼,对你的教育没有帮助)。