看板 java 關於我們 聯絡資訊
各位前輩好~ 小弟的目的是要降低對I/O頻繁的讀取負擔, 所以把檔案中存的資料全部讀進記憶體以備讀取, 讀進來後會有 (1024*1024) x 190 = 199229440筆資料, 打算以陣列來儲存,而每一筆資料內存的是 0或1或2 , 若使用boolean陣列則不足以表示0或1或2, 若使用short陣列的話,則該陣列大小也有380MB, 請問這樣的話是否能有把資料讀進記憶體時更節省記憶體空間、 在讀取時又好處理的方法呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.56.149
gwokae:硬要塞進記憶體的話,想到兩個方法笨方法是宣告布林陣列 01/28 20:53
gwokae:然後自己判斷false=0 true=1 null=2這樣... 01/28 20:56
stimim:用 short array + 3進位 ? 01/28 21:01
stimim:不然至少還有 byte array 可以用 01/28 21:03
gwokae:大概像這樣吧,沒仔細測 http://pastie.org/3270287 01/28 23:31
tkcn:有現成的 BitSet 01/28 23:34
LaPass:BitSet啊.... 知道了個好東西呢 01/29 00:59
jej:有進就有出..看看你的輸出的需求..如果沒有急迫性.. 01/29 06:09
jej:分段讀出去~~ 01/29 06:13
PsMonkey:囧... 還真的什麼 class 都有 XD 01/29 09:53
ClareQ:BitSet只能存0,1吧?原PO的需求應該要客製化資料結構 01/29 13:01
ClareQ:不過我比較好奇甚麼需求要用三元狀態? 未來有可能變更多嗎? 01/29 13:15
mysmppt:謝謝各位前輩的建議,現在需求改成只要0或1,可以用布林了 02/16 02:49
mysmppt:之前的需求是需要存測試結果,有1有0,也有隨機0或1的結果 02/16 02:52