2012-08-26 68 views
1

什麼是最好的數據結構來存儲不同類型的對象,這些對象是某些類的子類型。我需要選擇並打印屬性設置爲特定值的相同類型或對象。所以數據結構必須簡單快捷地進行搜索。我想知道ArrayList是否會完成這項工作。數據結構 - 快速搜索

回答

2

這取決於你如何「快速」你需要的結果。除非毫秒數和/或您有數百萬條目,否則數組列表將會沒事。

所以我會保持簡單,除非性能不夠好(測量的性能)。

在這種情況下,你可以使用HashMap,其中關鍵的是對象的類型和值是所有相應對象的ArrayList(假設你最需要的對象類型查詢的時間)。這會給你一個O(1)搜索。

如果您有不同類型的查詢,所有查詢的可能性都是相同的,那麼您可以爲每種查詢類型維護一個映射 - 然後它將成爲速度和內存使用率之間的折衷。

1

我個人建議以最高節點爲基礎的B+ tree