2017-02-02 4 views
0

У меня есть собственный общий класс связанных списков, называемый SLL. Для моей программы SLL будет содержать объекты Word. В моем классе Word я реализовал сопоставимый интерфейс и определил три компаратора. Когда я перехожу к компиляции, я получаю сообщение об ошибке при попытке сортировать пользовательский список, используя Collections.sort(). Почему я не могу понять, почему. Я включил некоторый код ниже. Сообщение об ошибке гласит:Сортировка пользовательского списка Java

//There is no suitable method found for sort(SLL<Word>, java.util.Comparator<Word>) 



private static SLL<Word> wordList = new SLL<Word>(); 

//methods to populate custom generic list 


private void printDescending() 
    { 
     Collections.sort(wordList, Word.frequencyComp1); 
     System.out.println("10 Most Frequent"); 
     printer(false); 
    } 

Мой класс декларация SLL и пару методов следующим образом:

public class SLL <T extends Comparable <T>> 
{ 
    private Node<T> head , tail; 
    private int currentSize; 
    public SLL() 
{ 
    this.head = null; 
    this.tail = null; 
    this.currentSize = 0; 
} 

public void add (Node<T> entry) 
{ 
    if (head == null) 
    { 
     Node<T> temp = entry; 
     head = temp; 
     tail = temp; 
     currentSize++; 
    } 
    else 
    { 
     Node<T> temp = entry; 
     tail.setNext(temp); 
     tail = temp; 
     currentSize++; 
    } 
} 

Любые и вся помощь будет принята с благодарностью, я на последнем этапе моей программы :(

+0

и ошибка IST –

+0

Isin't ошибки очевидном? (Не могу даже пометить вас^из-за вашего имени пользователя) – CKing

+0

@ ΦXocę 웃 Пepeúpa ツ Я могу пометить :) – VedX

ответ

0

https://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#sort(java.util.List)

в соответствии с этим, ваш список (SLL) должен иметь интерфейс List.

+0

это задание, а инструкции преподавателей должны были не реализовывать интерфейс списка –

+0

. Затем вы должны сортировать, не используя Collections.sort –

+0

кратко увидел код одноклассников, он смог сделать это, используя что-то эквивалентное: Collections.sort (SLL, Word.frequencyComp1) –

0
private static SLL<Word> wordList = new SLL<Word>(); 

В соответствии с вашим кодом SLL является классом, а wordList - объектом класса со ссылкой на класс слова.

Если вы хотите использовать метод сортировки класса Collection объект WordList должен быть объект коллекции типа, как показано ниже:

List<SLL<Word>> wordList = new ArrayList<SLL<Word>>(); 
+0

произвел такое же сообщение об ошибке, когда я изменил объявление ^^ –

+0

Пожалуйста, добавьте весь код и ошибку, которые Вы получаете –

Смежные вопросы