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
已經有這樣一個類。
添加回答
舉報