2016-06-10 27 views
0

在具有3列兩種數據類型的多維數組的Java中工作 - Column1可以是任何基本數據類型,Column2和Column3是具有相同大小的整數。我們有成千上萬個這樣的數組,其中有許多查找和比較操作,所以我們希望看看是否有類型對象數組的更快/更小的替代方案。我們需要保持排序順序,並希望避免哈希。所有操作使用全部3列。用於2種不同類型的數組的最有效的數據數據結構

總結要求:
通過數據結構迭代的 1.最大化速度
2.最小化的數據結構
3的尺寸維持的數組內容
4.避免散列排序順序(沒有LinkedHashMap的)

結構迄今我們考慮:
1.對象陣列(當前實現)
2.製作2點陣列(一個用於每個數據類型),並且在操作由數組索引外表加入他們up

有沒有人有任何其他(更好)的數據結構建議?謝謝:)

+0

...是的,哈希 –

+0

@ɐuıɥɔɐɯ感謝您的建議。但是我們需要維護排序順序(數組以這種方式相互連接),所以普通的散列不是一種選擇。我們嘗試了LinkedHashMap,但是這比一個對象類型的數組慢得多。想要其他的選擇 – WillGetItDunn

+0

爲什麼Java在這裏如此重要?我會用一個成熟的關係數據庫,比如postgres。 –

回答

0

這是我會怎樣 - 天真的 - 實現一個RDBMS

  • 使用字節數組的數組:byte[][],並且知道如何實現字節數組外部類。
  • 字節數組中可以有標記,就像定義第一項的類型一樣。即對於8種原始類型(byteshortintlongfloatdoublebooleanchar)標記可以很容易地裝配到1個字節。
  • 可以使用B樹(又名索引),使查找更快
  • 如果項目的順序可以是虛擬的,那麼另一個索引可以做到這一點

我相信你們已經知道這一點。但我很好奇,如果有什麼新的。

相關問題