我已经开发了像这样的数组列表
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,就像其他人提到的那样。