当前位置: 首页 > 面试题库 >

从列表中删除对象

孙昂然
2023-03-14
问题内容

如果我需要从List中删除一个对象(假设字符串“ abc”
linkedList或ArrayList),则可以删除哪一个?(我认为两者都是相同的)
,如果我使用Linkedlist和arraylist,那么时间和空间的复杂度是多少
(我相信两者的时间复杂度都为O(n)相同)


问题答案:

两者都具有相同的时间复杂度-O(n),但是恕我直言,该LinkedList版本会更快,尤其是在大型列表中,因为当您从数组(ArrayList)中删除一个元素时,右侧的所有元素都必须向左移动-
顺序来填充空数组元素,而LinkedList只需重新连接4个引用

这是其他列表方法的时间复杂度:

For LinkedList<E>

    get(int index) - O(n)
    add(E element) - O(1)
    add(int index, E element) - O(n)
    remove(int index) - O(n)
    Iterator.remove() is O(1) 
    ListIterator.add(E element) - O(1)

For ArrayList<E>

    get(int index) is O(1) 
    add(E element) is O(1) amortized, but O(n) worst-case since the array must be resized and copied
    add(int index, E element) is O(n - index) amortized,  O(n) worst-case 
    remove(int index) - O(n - index) (removing last is O(1))
    Iterator.remove() - O(n - index)
    ListIterator.add(E element) - O(n - index)


 类似资料:
  • 问题内容: 我有一个从mysql数据库附加的对象列表,并包含空格。我希望删除下面的空格,但是im使用的代码不起作用? 问题答案: Python中的字符串是不可变的(这意味着它们的数据无法修改),因此replace方法不会修改字符串-它返回一个新字符串。您可以按以下方式修复代码: 但是,实现目标的更好方法是使用列表理解。例如,以下代码使用以下命令从列表中的每个字符串中删除前导和尾随空格:

  • 假设我有一个雇员对象列表,每个雇员类都有雇员姓名、雇员地址、工资等属性。现在我必须删除名称为“John”和Salary的雇员对象 列表empList=new ArrayList 根据我的理解,若要解雇具有上述情况的员工,我应使用以下代码: 因此,基本上上述代码将从列表中删除所需的Employee对象。如果我的理解正确,请告诉我。 除此之外,请澄清以下几点:1.当我们有数百万条记录时,我们将如何解决

  • 问题内容: 在遍历列表时,我想根据条件删除列表中的项。请参见下面的代码。 这给了我一个例外。 如何才能做到这一点? 问题答案: 您需要使用和调用上,而不是使用循环。

  • 问题内容: 如果我有词典列表,请说: 并且我想删除具有2(或name )的字典,以编程方式解决此问题的最有效方法是什么(也就是说,我不知道列表中条目的索引,因此它可以)只是被弹出)。 问题答案: 编辑 :由于对此代码的性能提出了一些疑问(一些基于对Python的性能特征的误解,一些基于超出给定规范的假设,即列表中仅存在一个dict,其key的值为2) id”),我希望在此方面给您保证。 在旧的Li

  • 我有两个对象列表,它们在两个列表中都有重复名称。我需要从清单2中删除清单1中的所有重复值。 下面是一个场景,类有名称变量,用这个变量需要检查清单1中的重复值并需要删除。 //这是具有3个对象的第一个列表 清单1大小为1 请建议我在Java8与流。

  • 问题内容: 对此问题的任何帮助将不胜感激。 我有一个元组列表 并且我需要删除某种类型的重复项:根据我的定义,(1,2)和(2,1)被视为重复项。所需输出 提前致谢 问题答案: 您可以对它们进行排序,然后使用删除重复项: