Java中的LinkedList类有一个clear方法,用于清空列表中的所有元素。它的实现非常简单,只需将链表的头节点设置为null,这样便可以让原有的节点对象被垃圾回收机制回收。
下面是LinkedList类中clear方法的源代码:
public void clear() {
for (Node<E> x = first; x != null; ) {
Node<E> next = x.next;
x.item = null;
x.next = null;
x.prev = null;
x = next;
first = last = null;
size = 0;
这个方法会遍历链表,将每个节点的元素置为null,并将每个节点的前驱和后继指针都设置为null,最后将头节点和尾节点都设置为null,并将链表大小置为0,以便释放链表占用的内存空间。
使用LinkedList的clear方法可以帮助我们在不需要链表中的元素时,及时释放链表占用的内存空间,从而避免内存泄漏问题。