Таблица символов дает результат, отсортированный по ключу, но как мы можем отсортировать таблицу символов по значениям. Я использовал Arrays.sort(st,st.get(key))
, но выдает ошибку:
не может найти символ: метод
сортировать (ST, java.lang.Integer)
Моя программа выглядит примерно так. Все еще получаю ошибки:
import java.util.Comparator;
import java.util.Arrays;
public class DictionaryCounter {
private final String key;
public DictionaryCounter (String key){
this.key = key;
}
public static class Frequency implements Comparator<DictionaryCounter>{
public int compare(DictionaryCounter x, DictionaryCounter y){
return x.get(key).compareTo(y.get(key));
}
}
public static void main(String[] args) {
ST<String, Integer> st = new ST<String, Integer>();
//String key;
while (!StdIn.isEmpty()) {
key = StdIn.readString();
if (!st.contains(key))
{ st.put(key, 1); }
else
{ st.put(key,st.get(key) + 1 ); }
}
Arrays.sort(st,new Frequency (key));
for (String s: st.keys()) {
System.out.println(s + " " + st.get(s));
}
}
}