我有一个随时间收集对象的程序。这些对象通常但并不总是程序已经收到的对象的重复。唯一对象的数量有时可能高达数万。随着我的列表不断增加,需要更多时间来确定某个对象是否已经出现。Java:有效跟踪使用的对象
我目前的方法是将所有东西都存储在一个ArrayList中,al;使用Collections.sort(al);并使用Collections.binarySearch(al,key)来确定我是否使用了一个对象。每当我遇到一个新的对象时,我必须插入然后排序。
我想知道是否有更好的方法来做到这一点。包含的速度通常会变慢。我正在寻找尽可能接近O(1)的东西。
非常感谢。
这是java。为了理解什么是我说的目的,基本上,我需要做这个的方法:
public boolean objectAlreadyUsed(Object o) {
return \\ Have we seen this object already?
}
您可以使用HashSet或HashMap而不是ArrayList。 – afrischke 2012-01-06 15:06:22