3 回答
TA贡献1804条经验 获得超8个赞
您应该使您的 LinkedList 成为通用的,同时也使嵌入的 Node 成为可能,这样您就可以将 Node 中的数据字段定义为您传递的类型的实例:
class Node<T>{
T data;// Object data
Node next;
Node(T d){
this.data = d;
this.next = null;
}
}
public class LinkedList<T> {
Node<T> first = null;
Node<T> last = null;
// TODO change all your methods to accept value of type T instead of Object
}
TA贡献2051条经验 获得超10个赞
你的列表类应该使用泛型
public class MyList<T> {
public T getAtIndex(int i) {
return ...;
}
}
然后你可以创建一个这样的
MyList<Person> = new MyList<Person>();
我还建议扩展列表
public class MyList<T> extends List<T>
其中提供了get等标准方法
@Override
public T get(int index) {
return ...;
}
TA贡献1836条经验 获得超5个赞
您的LinkedList课程不是通用的。要使其通用,您可以按如下方式定义它......
public class LinkedList<T> {
}
但是,由于您的LinkedList类仅包含Nodes,因此您应该只使您的Node类通用。就像是...
class Node<T> {
T data;
Node next;
Node(T d){
this.data = d;
this.next = null;
}
}
然后你可以像这样创建一个人...... Node
Node<Person> personNode = new Node<>(new Person("George", 20));
顺便说一下,我建议重命名你的类,因为标准 java 类库中LinkedList
已经有这样一个类。
添加回答
举报