我試圖確定一種快速存儲一組對象的方法,每個對象都有一個x和y座標值,這樣我就可以快速檢索某個對象中的所有對象矩形或圓形。 對於小組對象(〜100)來說,簡單地將它們存儲在一個列表中並迭代它的方法相對較快。但是,對於更大的羣體而言,預計會很慢。 我試過一對樹狀的存儲它們,以及,一個在x座標進行排序,並在y一個排序的座標,使用此代碼:存儲對象用於定位x,y座標
xSubset = objectsByX.subSet(minX, maxX);
ySubset = objectsByY.subSet(minY, maxY);
result.addAll(xSubset);
result.retainAll(ySubset);
這也適用,並且是更大更快對象組,但仍然比我想要的慢。 部分問題還在於這些對象四處移動,需要插回到此存儲中,這意味着將它們從樹中刪除並重新添加到樹/列表中。 我不禁想到那裏一定有更好的解決方案。 我在Java中實現它,如果它有所作爲,但我期望任何解決方案將以更有用的模式/算法的形式出現。
哎呀,太慢了... – 2008-09-25 09:37:35