То, что я пытаюсь сделать, - это отсортировать объект массива с помощью свойства (Integer) в Java.Реализация интерфейса Comparable создает ошибку «UnsupportedOperationException: ListIterator не поддерживает set»
Я нашел несколько сообщений об использовании Comparable/Comparator для этой команды, но ни одна из них, похоже, не связана с ошибкой «java.lang.UnsupportedOperationException». Итак, я пишу вопрос здесь.
Я следовал за this page и пытался использовать интерфейс Comparable.
Вот часть моего кодирования
public class Word implements Comparable<Word>{
private String wordName;
private int number;
// There are only simple constructers, getters and setters
@Override
public int compareTo(Word word) {
int compareNumber = ((Word) word).getNumber();
return compareNumber - this.number;
}
}
Основной метод, как это.
public static void main(String[] args) {
//There are some irrelevant methods and fields
List newWordList = new ArrayList<>();
for (String wordName : WordList) {
//WordList is of List<String>, containing several "wordName" (i.e. string values)
//Get how many duplicate "wordName" inside the list
int number = Collections.frequency(WordList, wordName);
Word word = new Word(wordName, number);
newWordList.add(word);
}
List noDupList = SetUniqueList.setUniqueList(newWordList);
Collections.sort(noDupList, new Comparator<Word>() {
@Override public int compare(Word w1, Word w2) {
return w2.getNumber() - w1.getNumber();
}
});
}
Тогда это производит "java.lang.UnsupportedOperationException: ListIterator не поддерживает набор".
Я смущен, в частности, о «ListIterator», так как я не использую этот класс и не использую класс Set.
Буду признателен, если вы дадите представление.
Не 'SetUniqueList.setUniqueList()' использовать набор внутри? – csmckelvey
@Takendarkk мой ответ должен был быть вашим, действительно; хорошее пятно! – fge
@fge Я просто взглянул на документы, вы на самом деле сделали исследование и объяснили это. Снимаю перед вами шляпу. – csmckelvey