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

从数组列表中删除元素的更有效方法

孔永年
2023-03-14
问题内容

我已经开发了像这样的数组列表

ArrayList<String> list = new ArrayList<String>();
list.add("1");
list.add("8");
list.add("8");
list.add("3");
list.add("4");

现在我的问题是:如果我想从列表中删除“ 8”,哪种方法更好?

第一种方式:

for(int i = 0; i < list.size(); i++) {
    if(list.get(i).equals("8")) {
        list.remove(i);
        i--;
    }
}

第二种方式:

Iterator<String> iterator = list.iterator();
    while(iterator.hasNext())
        if(iterator.next().equals("8"))
            iterator.remove();

现在,请从性能的角度建议其中哪一个效率更高,速度更快,并且还有其他任何类似于内置函数的方法,通过使用它,我们可以删除重复项而无需进行过多迭代。


问题答案:

在性能方面,它们应该相似。你测试了吗 如果要使用内置方法,则可以达到类似的性能(通过测试确认):

list.removeAll(Arrays.asList("8"));

最后,如果您想要一个没有重复的列表,请使用Set,就像其他人提到的那样。



 类似资料:
  • 我有一个列表和一个字符串数组 我想检查列表A中是否存在元素,删除它,然后删除列表A中数组B中的元素, 如何在Java8中使用流在一行中完成? 这就是从列表A.stream()中删除元素的方式。过滤器(滤芯)-

  • 问题内容: 有什么快速(好看的)方法可以从Java中的数组中删除元素? 问题答案: 你可以使用的。

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

  • 问题内容: 有没有一种简单的方法可以使用PHP从数组中删除元素,从而不再包含该元素? 我以为将它设置为可以实现,但是显然不起作用。 问题答案: 有多种删除数组元素的方法,其中某些方法对某些特定任务比其他任务更有用。 如果只想删除一个数组元素,则可以使用或。 另外,如果您具有值并且不知道要删除元素的键,则可以使用该键来获取键。 请注意,使用数组键时不会更改/重新索引。如果要重新索引键,则可以使用它,

  • 有没有一个有效的方法来删除Nones从Numpy数组和调整数组到它的新大小? 例如,如何在不在python中迭代的情况下从这个框架中删除None。我可以很容易地对它进行迭代,但正在处理一个可能被多次调用的api调用。

  • 我需要从Python 2.7中的对象列表中删除前n个元素。有没有一种不使用循环的简单方法?