朋友们,LinkedList
的实现引起了我的一点误解。我知道如何实现LinkedList
的所有方法,但我不明白为什么类Link
包含自己的对象内部(类Link
内部)。smb可以解释为什么Link
类在里面包含自己的对象吗?有什么类比吗?提前感谢!
Link
类
package LinkedList;
public class Link {
public String data;
public Link next;
public Link(String data){
this.data = data;
this.next = null;
}
public void display(){
System.out.println(data);
}
}
Class `LinkedList`
class LinkedList{
public Link firstLink;
public LinkedList(){
this.firstLink = null;
}
public void insert(String data){
Link myLink = new Link(data);
myLink.next = firstLink;
firstLink = myLink;
}
public Link deleteFirst(){
Link deletedLink = firstLink;
firstLink = firstLink.next;
return deletedLink;
}
public boolean search(String data){
Link current = firstLink;
while(current != null){
if(current.data.equals(data)){
return true;
}
else{
current = current.next;
}
}
return false;
}
public void displayList(){
Link current = firstLink;
while(current != null){
current.display();
current = current.next;
}
}
}
LinkedTester
类
package LinkedList;
public class LinkTester {
public static void main(String[] args){
LinkedList theLinkedList = new LinkedList();
theLinkedList.insert("A");
theLinkedList.insert("B");
theLinkedList.insert("C");
theLinkedList.insert("D");
theLinkedList.insert("E");
theLinkedList.displayList();
System.out.println();
System.out.println(theLinkedList.search("A"));
}
}
当你声明
时,你需要明白这一点public link next;
next
不是类link
的对象,它是一个变量,可以指向类link
的对象,当您执行next = new link();
时,即对象创建时,next
开始指向对象。
所以,这实际上意味着,你的类list
不包含自己类型的对象,但包含一个变量,可以指向list
类型的对象,这是链表的基本概念(一个节点指向另一个节点,形成一个连续的链)