我有一個項目,我正在處理單元格的二維數組,我目前正在使用布爾型[240] [135] 數組,這是32k元素左右的某處(當我切割單元格大小時一半)。我想創建一個CellMap類,它使用一組BitSet來存儲這些信息。我已經想過創建一個Byte [],並將值0或1設置爲true/false,但是對於每個條目來說,這是7位浪費的空間。以及布爾值可以以各種方式存儲的事實取決於VSM,布爾陣列在內存上看起來更糟,然後是字節數組。如何創建一個BitSet對象數組?
我能想到的唯一的其他選擇是創建一個類,它將信息存儲在兩種類型的btye數組中。壓縮和臃腫。在壓縮的字節數組中,每一位代表布爾真/假。在臃腫的字節數組中,每個字節將表示一個真/假(0b00000001和0b00000000),這個8位布爾字節可以存儲在一個字節中。儘管如此,還是有很多數據來壓縮看似有限的回報。
只是想到了另一種方法。可以簡單地使用線性(單個)BitSet並進行一些轉換來將2d座標轉換爲1d索引。雖然?哦,順便說一句我使用Java進行此= P
編輯到目前爲止,「M朝着最後的解決方案倚...我已經設法給它一些時間碼和結果都很好至今。
這取決於您需要支持哪些操作。只是測試,設置和清除個別細胞? – Henry 2014-09-13 09:02:01
我們應該等着看嗎?這仍然是一個問題嗎? – laune 2014-09-13 09:18:05
我認爲這類問題更適合程序員堆棧交換通道。 – Bobulous 2014-09-13 13:53:06