Java 为什么类字段在方法工作后更新其数据
请帮帮我。 假设我有一个链接列表的链接类。 还有SortedList类,其中有处理第一个类创建的数据的方法Java 为什么类字段在方法工作后更新其数据,java,algorithm,data-structures,linked-list,Java,Algorithm,Data Structures,Linked List,请帮帮我。 假设我有一个链接列表的链接类。 还有SortedList类,其中有处理第一个类创建的数据的方法 public class Link { public long db; public Link next; public Link(long data){ db=data; } public void displayLink(){ System.out.println(db+" "); } } public class SortedList {
public class Link {
public long db;
public Link next;
public Link(long data){
db=data;
}
public void displayLink(){
System.out.println(db+" ");
}
}
public class SortedList {
private Link first;
public SortedList(){
first=null;
}
public void insert(long key){
Link newLink=new Link(key);
Link previous=null;
Link current=first;
while (current!=null&&key>=current.db){
previous=current;
current=current.next;
}
if (previous==null){
first=newLink;
}else {
previous.next=newLink;
newLink.next=current;
}
}
public void displayList(){
System.out.println("List (first-->last): ");
Link current=first;
while (current!=null){
current.displayLink();
current=current.next;
}
System.out.println();
}
}
insert方法使用第一个字段。
第一个字段将其数据传递给当前字段。
方法与当前字段一起退出后,不会对第一个字段进行任何更改,但更改仍显示在第一个字段中
它是如何发生的,我请求您帮助在
插入
的开头,我们将当前
设置为对第一个
值的引用。这意味着,此时,current
和first
都是对同一字段的引用
然后,while
循环从开始在节点上迭代
,直到我们到达列表的末尾或其键小于key
的节点。迭代是通过更新当前节点的next
引用来进行的
现在发生了让你困惑的部分:如果第一个
是空的
(即,我们第一次调用insert
,下一个操作将通过为其分配一个新值来更新first
。first
现在将引用newLink
的值,它正是我们在insert
顶部创建的节点
它有助于像计算机一样用笔和纸,为所有变量绘制一个包含列的表格。您可以使用调试器执行类似操作,在方法开头设置断点,然后“逐步执行”您的代码。请编辑您的问题以添加此信息。此外,您的问题目前还不能真正理解。请编辑它以使其更清楚。Konrad,抱歉。简而言之,我不明白在insert方法工作后如何更新SortedList类的第一个字段的数据。毕竟,没有任何信息保存在e第一个字段的insert方法。您所说的“毕竟,第一个字段的insert方法中没有保存任何信息”是什么意思?代码确实将信息保存在
first
中,当它执行first=newLink;
时。如果我们将数据添加到sortedList类中,如此sortedList.insert(1);sortedList.insert(6);并将数据显示到控制台,然后输出如下列表(first-->last):16这里的问题是第一个字段如何存储通过insert方法AAAA传递的所有信息,就像头上的屁股一样。你是一个非常酷的人,即使我小时候解释过,你也能理解我。非常感谢)