从不带.clear()java的链表中删除所有元素
我想在不使用从不带.clear()java的链表中删除所有元素,java,linked-list,Java,Linked List,我想在不使用clear方法的情况下删除链接列表中的所有元素 这是我目前的代码 //-----inner class----- private static class Node <T> { private T data; //next just points private Node<T> next; //constructs a node public Node(T data, Node<T> next){ this
clear
方法的情况下删除链接列表中的所有元素
这是我目前的代码
//-----inner class-----
private static class Node <T> {
private T data;
//next just points
private Node<T> next;
//constructs a node
public Node(T data, Node<T> next){
this.data = data;
this.next = next;
}
public T getData(){ return data;}
public Node<T> getNext(){ return next;}
它应该可以工作,但每次我测试它时,它都说没有任何内容被删除。这只是完整代码的一部分
public void reset() {
head = null;
}
(你)
它应该可以工作,但每次我测试它时,它都说没有任何内容被删除。这只是完整代码的一部分
(我的评论)
您删除了对列表第一个元素的引用,因此如果没有引用,则该列表仅存在于JVM的内存中,垃圾收集器将从内存中删除它,但您不会将大小设置为零(size=0;),并且当测试或其他事情发生时,它仍会检查列表,例如“size=6”。另一方面,你有一个功能,就是重置你的列表
public ListNoOrder() {
this.head = null;
size = 0;
}
所有评论都是用断断续续的英语写的:)这是
java.util.LinkedList
还是您自己的实现?您的问题文本与您的标题完全相反@杰里米是我自己的implementation@GhostCat我的错误oops@lionbear28让我们看看你是如何决定的。在蝙蝠的右侧,您没有将size
变量更改为0
。。。
public void reset() {
head = null;
}
public ListNoOrder() {
this.head = null;
size = 0;
}