如何正确填充类型为ArrayList ? 的ArrayList

问题描述 投票:0回答:1
我是APCSA的学生,正在尝试回答教科书中的问题。基本上,给定一个不同单词的ArrayList,我需要创建并返回一个带有26个“存储桶”的ArrayList类型的ArrayList,每个存储包含以“ 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; }

我是APCSA的学生,正在尝试回答教科书中的问题。基本上,给定一个不同单词的ArrayList,我需要创建并返回带有26个“存储桶”的ArrayList类型的ArrayList,...
java arraylist indexoutofboundsexception
1个回答
0
投票
那里的'26'只是说arraylist被优化为处理26个元素。它仍然是一个空的arraylist,其中有零个元素。在for(26)循环的顶部,尝试添加buckets.add(new ArrayList<>());
© www.soinside.com 2019 - 2024. All rights reserved.