2011-04-24 27 views
29

由于标题说我在想,ArrayList的contains()方法的时间复杂度是多少。对象的ArrayList中的contains(Object o)的时间复杂度

+4

如果你想更快地查找(在更大的内存使用情况的成本),并且您的列表没有(从视图equals'的'点和'hashCode')重复元素,你可以使用'LinkedHashSet'。 – 2011-04-24 16:37:25

+0

这实际上可能是我的情况,谢谢:) – Samuel 2011-04-24 16:39:11

+0

如果ArrayList被排序会更快吗? – Roberto 2012-09-17 23:40:55

回答

38
O(n) 

sizeisEmptygetsetiterator,并listIterator操作在固定时间内运行。 add运行在分期付款恒定时间,也就是说,添加n个元素需要O(n)时间。所有其他操作都在线性时间内运行(粗略地说)。与LinkedList实现相比,常数因子较低。

http://download.oracle.com/javase/6/docs/api/java/util/ArrayList.html

相关问题