linked list
class Link
{
public Object data;
public Link next;
public Link(Object o)
{
this.data = o;
this.next = null;
}
public String toString()
{
return data.toString();
}
}
class LinkList {
private Link head;
public LinkList()
{
head = null;
}
我创建的方法
public Object max(){
Link current=head;
Comparable max=(Comparable)(head.data);
while(current!=null){
if(max.compareTo(current.data)==-1){
max=(Comparable)current.data;
}
current=current.next;
}
return max;
}
问题是它一直在发布此错误 线程“main”中的异常java.lang.ClassCastException:java.lang.Integer无法强制转换为Comparable
我知道你会在数字的情况下获得最大值,所以你可以将它转换为int但是我试图让方法使用Comparable 任何想法??
答案 0 :(得分:1)
您可以将Link类属性数据类型更改为其他实现Comparable接口的Class。喜欢我的代码,并覆盖compareTo方法:
class Link {
public MyBean data;
public Link next;
public Link(MyBean o) {
this.data = o;
this.next = null;
}
public String toString() {
return data.toString();
}
}
class MyBean implements Comparable<MyBean>{
String name;
// ... other properties
@Override
public int compareTo(MyBean o) {
return System.identityHashCode(this.name) - System.identityHashCode(o);
}
}