Java,当你执行 object = object 时内部发生了什么?

标签 java object singly-linked-list object-reference

我正在用 Java 实现单向链表,但遇到了问题。 添加和删​​除节点,很多人使用临时节点是这样的:

public Object removeFirst() {
   Node temp = head;
   head = temp.next;
   Object returnData = temp.data;
   temp = null;
   size--;
   return returnData;
}

为什么需要这个临时节点?乍一看,我认为要删除第一个元素我要做的就是将第二个元素更改为头节点。

所以我的问题是,在 java 中,object= object 是什么意思? 2 个对象在继承每个字段和方法时变得完全相同吗?

最佳答案

temp 不是必需的。它用于在 head 变量不再引用那个 Node 之后获取被删除的 Node 的数据,但是没有它也可以完成:

public Object removeFirst() 
{
    Object returnData = head.data;
    head = head.next;
    size--;
    return returnData;
}

关于Java,当你执行 object = object 时内部发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48621253/

相关文章:

java - 将大写字符与小写字符匹配,Java

php - 使用 array_fill 创建对象数组时如何使每个对象唯一?

c - 单次遍历中链表的中点?

c - 为什么无法在该链表的索引0(头)处插入新节点?

java - 查找字符是否在字符串中时发生错误

java - 将 JSlider 值更改为 JSpinner 值,反之亦然

java - SDK类的使用

java - Groovy - 主要方法放置

delphi - 如何在运行时在 FireMonkey 中使用鼠标选择 3D 对象

rust - 为什么我不能将这个尾递归函数转换为 Rust 中的迭代函数?