我有一個隨時間收集對象的程序。這些對象通常但並不總是程序已經收到的對象的重複。唯一對象的數量有時可能高達數萬。隨着我的列表不斷增加,需要更多時間來確定某個對象是否已經出現。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