Когда я запускаю следующий код:
Student student1 = new Student("Billy", 13);
Student student2 = new Student("Bob", 12);
Student student3 = new Student("Belle", 11);
Student student4 = new Student("Barry", 10);
Student student5 = new Student("Brian", 10);
Student student6 = new Student("Bane", 13);
Collection<Student> students = new HashSet<Student>();
students.add(student1);
students.add(student2);
students.add(student3);
students.add(student4);
students.add(student5);
students.add(student6);
for(Student student : students)
{
String name = student.getName();
System.out.println(name);
}
Он распечатает список имен для моих студенческих объектов. Теперь я хотел бы сделать их в алфавитном порядке. Я думал, что это будет так же просто, как использовать TreeSet или SortedSet.
Так:
Student student1 = new Student("Billy", 13);
Student student2 = new Student("Bob", 12);
Student student3 = new Student("Belle", 11);
Student student4 = new Student("Barry", 10);
Student student5 = new Student("Brian", 10);
Student student6 = new Student("Bane", 13);
Collection<Student> students = **new TreeSet<Student>();**
students.add(student1);
students.add(student2);
students.add(student3);
students.add(student4);
students.add(student5);
students.add(student6);
for(Student student : students)
{
String name = student.getName();
System.out.println(name);
}
Но это просто вызывает исключение:
Exception in thread "main" java.lang.ClassCastException: helloworld.Student cannot be cast to java.lang.Comparable
at java.util.TreeMap.put(TreeMap.java:542)
at java.util.TreeSet.add(TreeSet.java:238)
at helloworld.Main.main(Main.java:60)
Java Результат: 1
Я также добавил метод compareTo в студенческий класс:
public int compareTo(Student other)
{
return this.getName().compareTo(other.getName());
}
Student
не реализуетComparable
, но мы не можем сказать, так как у нас нет ни исключения, ни классаStudent
... - person Jon Skeet   schedule 27.01.2015Student
илиEmployee
...) - person Marco13   schedule 27.01.2015implements Comparable<Student>
в объявление своего класса, как описано в опубликованном ответе? - person Pshemo   schedule 27.01.2015