java - 从列表中获取/删除第一个元素的有效方法?

标签 java list arraylist collections linked-list

我想从列表中取出并删除第一个元素。我可以看到,我有两个选择:

第一种方法:

LinkedList<String> servers = new LinkedList<String>();
....
String firstServerName = servers.removeFirst();

第二种方法

ArrayList<String> servers = new ArrayList<String>();
....
String firstServerName = servers.remove(0);

我的列表中有很多元素。

  • 我们应该优先使用哪一个?
  • 以上两者有什么区别?就性能而言,它们在技术上是否相同?如果我们有很多元素,这里涉及的复杂性是什么?

什么是最有效的方法。

最佳答案

如果“先删除”的比较是在 ArrayListLinkedList 类之间进行的,则 LinkedList 显然胜出。

从链表中删除一个元素的成本为 O(1),而为数组(数组列表)删除元素的成本为 O(n)

关于java - 从列表中获取/删除第一个元素的有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30633268/

相关文章:

java - ArrayList 和 Array 作为构造函数的参数

java - 迁移到 Heroku 免费 : dynos, sleep 和 quartz

java - 在 GridLayout 中创建自定义删除键

python - 字典值的总和列表

java - 尝试通过 ResourceLink 访问 Tomcat 数据源时返回的是 ResourceRefLink

java - 如何正确清除java中的列表

list - Erlang:将两个列表相乘

android - 如何在android中创建arraylist数组

java - 什么是无限迭代器?为什么要使用它?

java - 使用 compareTo 从 ArrayList 中删除重复项