3 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊
您應(yīng)該使您的 LinkedList 成為通用的,同時(shí)也使嵌入的 Node 成為可能,這樣您就可以將 Node 中的數(shù)據(jù)字段定義為您傳遞的類型的實(shí)例:
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貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊
你的列表類應(yīng)該使用泛型
public class MyList<T> {
public T getAtIndex(int i) {
return ...;
}
}
然后你可以創(chuàng)建一個(gè)這樣的
MyList<Person> = new MyList<Person>();
我還建議擴(kuò)展列表
public class MyList<T> extends List<T>
其中提供了get等標(biāo)準(zhǔn)方法
@Override
public T get(int index) {
return ...;
}

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊
您的LinkedList課程不是通用的。要使其通用,您可以按如下方式定義它......
public class LinkedList<T> {
}
但是,由于您的LinkedList類僅包含Nodes,因此您應(yīng)該只使您的Node類通用。就像是...
class Node<T> {
? ? T data;
? ? Node next;
? ? Node(T d){
? ? ? ? this.data = d;
? ? ? ? this.next = null;
? ? }
}
然后你可以像這樣創(chuàng)建一個(gè)人...... Node
Node<Person> personNode = new Node<>(new Person("George", 20));
順便說一下,我建議重命名你的類,因?yàn)闃?biāo)準(zhǔn) java 類庫中LinkedList
已經(jīng)有這樣一個(gè)類。
添加回答
舉報(bào)