【发布时间】:2015-08-02 09:52:33
【问题描述】:
我正在尝试对列表进行排序,如下所示。
List dg = new ArrayList();
dg.add(new Dog("one"));
dg.add(new Dog("two"));
dg.add(new Dog("three"));
dg.add(new Dog("four"));
dg.add(new String("Ankit"));
我尝试为下面的 Dog 类实现可比较(不确定它在这里是否有用)
//Dog class below//
class Dog implements Comparable<Dog>{
String name;
public Dog(String name) {
this.name = name;
}
public String getName() {
return name;
}
public int compareTo(Dog d){
return this.getName().compareTo(d.getName());
}
问题是我写了下面给出的比较器,我得到了 ClassCastException。如何解决?
class StringComparator implements Comparator {
public int compare(Object d, Object s) {
String p=((Dog)d).getName();
return (p.compareTo(s.toString()));
}
}
//usage of the above comparator
Arrays.sort(odog,sc);
【问题讨论】:
-
您应该将您的编程语言添加为标签,以便其他人更容易找到。