Итак, для проекта мне нужно отсортировать слова в алфавитном порядке, инкапсулированные в классе Word, который реализует Comparable. Экземпляры Word должны быть отсортированы в ArrayList из отдельного статического класса, содержащего алгоритм. Я создал стандартный алгоритм сортировки выбором, который воздействует на экземпляры объектов, реализующих интерфейс Comparable, но в моем основном классе он выдает ошибку всякий раз, когда я пытаюсь передать ArrayList‹ Word >. Я заметил, что если я изменю тип на ArrayList‹ Comparable >, то это сработает, но я чувствую, что это не самое лучшее соглашение, поскольку оно будет содержать только объекты Word. Я делаю что-то не так, и если да, то что я могу сделать, чтобы это исправить?
Я прикреплю код, который, по моему мнению, необходим для визуализации того, что я имею в виду.
Объявление и создание экземпляра ArrayList:
private static ArrayList<Word> words;
words = new ArrayList<Word>();
Рассматриваемая строка, которая выдает ошибку:
ObjectALSelectionSort.selectionSort(words);
Заголовок для класса Word:
public class Word implements Comparable<Word>
Заголовок для метода selectionSort()
:
public static void selectionSort(ArrayList<Comparable> list)
Я предполагаю, что меня действительно смущает то, почему я не могу передать ArrayList объектов, которые реализуют Comparable, в метод, который действует на Comparables.
ArrayList
не массив. изменить Хорошо, теперь лучше продублировать цель. - person user202729   schedule 10.02.2018