gpt4 book ai didi

java - 关于这个关键字(java)

转载 作者:行者123 更新时间:2023-12-02 00:28:58 28 4
gpt4 key购买 nike

我对以下程序的输出有疑问。输出为空。我也是这么想的。我认为这是因为在显示之前调用的方法只是修改头部的副本而不是头部本身。我假设我可以使用 this.head= 来解决这个问题,对吗?

代码如下:

public class List {
private Node head;
public List (){
int max=3;
int i;
head=null;
Node aNode=new Node(0);
for (i=0; i<max; i++) {
aNode.setNum(i);
add (aNode);
aNode.setNext(null);
}
}
public void add(Node aNode) {
Node temp;
if(head==null)
head=aNode;
else {
temp=head;
while(temp.getNext()!=null)
temp=temp.getNext();
temp.setNext(aNode);
}
}
public void display() {
Node temp=head;
while(temp!=null) {
System.out.println(temp.getNext());
temp=temp.getNext();
}
}
}


public class Node {
private int num;
private Node next;
public Node (int n) {num=n; next=null;}
public int getNum() {return num;}
public void setNum(int n) {num=n;}
public void setNext(Node n) {next=n;}
public Node getNext() {return next;}
}

public class Driver {
public static void main(String args[]) {
List aList=new List();
aList.display();
}
}

最佳答案

add 依赖于接收一个 next 为空的节点。因此,将 Node aNode = new Node(); 移至 for 循环内。

一些卫生注意事项。

  • (不重要)使用 current 而不是 temp 或其他任何内容。
  • 类中的字段默认为 null/0/0.0/false。

关于java - 关于这个关键字(java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9506165/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com