java - 从多个位置删除 Java 中的对象引用
问题描述
我有这样的课:
Class Node {
private String name;
private Node next;
public Node(String name) {
this.name = name;
}
public void setNext(Node node) {
this.next = node;
}
public Node getNext() {
return this.next;
}
}
我有一个示例节点:
Node node = new Node("abc");
Node n1 = new Node("def");
node.setNext(n1);
现在,如果我这样做:
n1 = null;
node.getNext() <-- This returns new Node("def");
如何在null
不使用该setNext()
方法的情况下使其返回。我有一个Node
对象列表,如果我从列表中删除任何Node
对象,我想将所有next
指向已删除节点的指针设置为 null。
有谁知道如何实现这一目标?
解决方案
如果不使用 setNext 进行设置,您将无法做到这一点,为什么?因为 node 仍然具有 n1 的值,所以您还必须将 node.setNext 设置为 null ......如果您希望将所有下一个指针从已删除节点设置为 null ,那么您必须循环整个事情直到结束并且将它们中的每一个设置为空。
如果你愿意,你可以在模型类中设置它,但你仍然必须使用 setNode
推荐阅读
- ios - 在 SwiftUI 中保存 CoreData 后无法关闭多个详细信息视图
- java - Spring Boot War 部署 - 无法启动组件错误
- kernel - Virtualbox 6.1.10,Ubuntu 20.04 错误返回状态构建在内核 5.8.0 上,包 virtualbox-dkms 错误
- go - gin 服务器的优雅停止
- kubernetes - 托管在 jelastic 上的 kubernetes 上的服务外部 IP 待定
- php - Laravel如何遍历数组并按键获取值
- javascript - 如何将 glider.js 加入队列?
- google-chrome - 如何优化我的网络应用程序的视频以进行屏幕共享?
- xml - XML 属性中的转义撇号,使用 XSLT
- python - aiohttp 在后台调度运行任务