我想从列表中取出并删除第一个元素。我可以看到,我有两个选择:
第一种方法:
LinkedList<String> servers = new LinkedList<String>();
....
String firstServerName = servers.removeFirst();
第二种方法
ArrayList<String> servers = new ArrayList<String>();
....
String firstServerName = servers.remove(0);
我的列表中有很多元素。
- 我们应该优先使用哪一个?
- 以上两者有什么区别?就性能而言,它们在技术上是否相同?如果我们有很多元素,这里涉及的复杂性是什么?
什么是最有效的方法。
最佳答案
如果“先删除”的比较是在 ArrayList
和 LinkedList
类之间进行的,则 LinkedList
显然胜出。
从链表中删除一个元素的成本为 O(1)
,而为数组(数组列表)删除元素的成本为 O(n)
。
关于java - 从列表中获取/删除第一个元素的有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30633268/