Java中的LinkedList removeLast()方法
在Java中,LinkedList是一种常用的数据结构,它可以被用来模拟一个链式的列表,栈或队列。
其中,LinkedList的removeLast()方法是指删除链表的最后一个元素。在这篇文章中,我们将学习这个方法的用法、示例和一些注意点。
基本用法
LinkedList类提供了removeLast()方法来删除列表中的最后一个元素。它的语法如下:
public E removeLast()
这个方法返回被删除的元素。如果列表为空,则抛出NoSuchElementException异常。
接下来,我们来看看这个方法的示例代码:
import java.util.LinkedList;
public class LinkedListExample {
public static void main(String[] args) {
LinkedList<String> linkedList = new LinkedList<String>();
linkedList.add("A");
linkedList.add("B");
linkedList.add("C");
System.out.println("LinkedList before removing last element:" + linkedList);
String removedElement = linkedList.removeLast();
System.out.println("Removed Element: " + removedElement);
System.out.println("LinkedList after removing last element:" + linkedList);
}
}
上述代码首先创建一个LinkedList对象,并向其中添加三个字符串元素“A”、“B”和“C”。然后,程序输出列表内容,并运行removeLast()方法删除最后一个元素,即“C”。
最后,程序再次输出列表内容,以验证removeLast()方法的效果。
运行上述代码输出如下:
LinkedList before removing last element:[A, B, C]
Removed Element: C
LinkedList after removing last element:[A, B]
我们可以看到,删除最后一个元素“C”后,LinkedList中只剩下了“A”和“B”。
注意事项
空链表的情况
如果LinkedList为空,那么调用removeLast()方法将抛出NoSuchElementException异常。因此,在调用removeLast()方法之前,我们需要确认LinkedList中是否至少包含一个元素。
下面是一个演示的代码:
import java.util.LinkedList;
import java.util.NoSuchElementException;
public class LinkedListExample {
public static void main(String[] args) {
LinkedList<String> linkedList = new LinkedList<String>();
try {
linkedList.removeLast();
} catch (NoSuchElementException e) {
System.out.println("LinkedList is empty");
}
}
}
上述代码创建了一个空的LinkedList对象,并尝试删除最后一个元素。这个操作将抛出NoSuchElementException异常。为了处理这个异常,我们使用try-catch块来捕获这个异常,并打印出相应的错误信息。
remove()和pollLast()
除了removeLast()方法以外,LinkedList还提供了其他两个方法来删除最后一个元素:remove()和pollLast()。
这三个方法的区别在于,如果LinkedList为空,调用removeLast()和remove()方法将抛出NoSuchElementException异常,而调用pollLast()方法将返回null。
下面是这三个方法的示例代码:
import java.util.LinkedList;
public class LinkedListExample {
public static void main(String[] args) {
LinkedList<String> linkedList = new LinkedList<String>();
linkedList.add("A");
linkedList.add("B");
linkedList.add("C");
System.out.println("LinkedList before removing last element:" + linkedList);
// Using removeLast()
String removedElementByRemoveLast = linkedList.removeLast();
System.out.println("Removed Element By removeLast(): " + removedElementByRemoveLast);
System.out.println("LinkedList after removing last element by removeLast():" + linkedList);
// Using remove()
String removedElementByRemove = linkedList.remove();
System.out.println("Removed Element By remove(): " + removedElementByRemove);
System.out.println("LinkedList after removing last element by remove():" + linkedList);
// Using pollLast()
String removedElementByPollLast = linkedList.pollLast();
System.out.println("Removed Element By pollLast(): " + removedElementByPollLast);
System.out.println("LinkedList after removing last element by pollLast():" + linkedList);
}
}
上述代码首先向LinkedList中添加三个字符串元素,然后使用removeLast()方法删除最后一个元素,并输出列表内容。接着,程序使用remove()方法删除列表头的元素,并再次输出列表内容。最后,程序使用pollLast()方法删除最后一个元素,并再次输出列表内容。
运行上述代码输出如下:
LinkedList before removing last element:[A, B, C]
Removed Element By removeLast(): C
LinkedList after removing last element by removeLast():[A, B]
Removed Element By remove(): A
LinkedList after removing last element by remove():[B]
Removed Element By pollLast(): B
LinkedList after removing last element by pollLast():[]
我们可以看到,经过三个方法的操作,最终LinkedList被清空。
结论
在Java的LinkedList中,removeLast()方法可以被用来删除列表中的最后一个元素。在使用该方法时,需要注意空链表的异常情况和该方法与remove()和pollLast()方法的区别。