Ric*_*ral 9 java foreach iterator contains list
性能方面,使用之间确实存在很大差异:
当然,对于foreach | iterator循环,我必须明确地比较这些方法并相应地返回true或false.
我正在比较的对象是一个对象,其中equals()和hashcode()都被正确覆盖.
编辑:毕竟不需要知道containsValue,对不起.是的,我很愚蠢...我意识到我的问题是关于containsKey vs foreach是多么愚蠢,没关系,我不知道我在想什么.我基本上想知道上面的内容(编辑出其他内容).
编辑:
随着问题的新形式不再包括HashMap和TreeMap,我的答案完全不同.现在我说没有.
我确信其他人已经回答了这个问题,但是在LinkedList和ArrayList中,contains()只调用indexOf(),它遍历集合.
在LinkedList和ArrayList之间以及contains和foreach之间存在微小的性能差异,可能没有任何大的差异.
这没有任何差异,因为contains(o)调用indexOf(o),它只是像这样循环:
for (int i = 0; i < size; i++)
if (o.equals(elementData[i]))
return i;
Run Code Online (Sandbox Code Playgroud)
(在ArrayList中检查)