gpt4 book ai didi

java - 我如何在内部找到单链表中的最大值

转载 作者:行者123 更新时间:2023-11-30 07:40:14 24 4
gpt4 key购买 nike

链表的代码

  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 来使该方法起作用有什么想法吗??

最佳答案

您可以将 Link 类属性数据类型更改为实现 Comparable 接口(interface)的其他类。就像我的代码一样,并重写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);
}
}

关于java - 我如何在内部找到单链表中的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34804095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com