我被要求按长度排序单词列表,对于那些具有相同长度的单词,按字母顺序排序。以下是目前用于实现该功能的方法。
public static void doIt(BufferedReader r, PrintWriter w) throws IOException {
TreeMap<String, Integer> s = new TreeMap<String, Integer>();
ArrayList<Integer> count = new ArrayList<Integer>();
String line;
int length;
while ((line = r.readLine()) != null) {
length = line.length();
s.put(line, length);
if (!count.contains(length)){
count.add(length);
}
}
Collections.sort(count);
System.out.println(count);
}
我的想法是使用TreeMap来存储字符串,以单词长度作为键。我还有一个ArrayList用于跟踪所有单词的长度,没有重复项,并进行排序。
我希望能够以5为键值调用TreeMap,这将列出所有长度为5个字母的单词。
我在想我是否走在正确的道路上?我已经试验了一个多小时,似乎无法找到下一步该怎么做。我是否从正确的角度来考虑这个问题?