1
我想管理最多10^18個項目的布爾狀態(開/關)。在Java中執行此操作的內存和計算效率最高的方式是什麼?我不能創建這樣大的布爾值數組,因爲數組大小的原始類型是int
,而BitSet
類也是如此。管理大量布爾狀態的最有效方法
E.g:
long numSwitches = Long.MAX_VALUE;
boolean[] switches = new boolean[numSwitches];
給了我一個編譯錯誤:Incompatible types, Reguired: int, Found: long
只能使用int作爲數組大小。如果您需要更多,請創建更多陣列或使用動態數據結構。 – Turing85
http://stackoverflow.com/questions/3040864/java-sparse-bit-vector(假設沒有真正的10^17 trues)可能的副本 – kennytm
10^18是約。 2^60所以確實太多了。內存映射文件可以做到;一個ByteBuffer等等。 –