作者LaPass (LaPass)
看板java
標題[問題] 不定長度的byte陣列該怎麼放?
時間Tue Jun 23 11:05:20 2015
需要針對byte陣列做運算
要作的動作很簡單
1.把所有的0x01替換成0x0101
2.把所有的0x00替換成0x01
我打算用個迴圈去處理
由於在算完前不知道生成的byte的陣列長度
所以大概需要一個像是StringBuilder之類的東西來放生成到一半的byte
請問該用什麼樣的容器物件去放比較好?
我直覺上會用 ArrayList<Byte>
但怕boxing unbox影響效能
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.87.115
※ 文章網址: https://www.ptt.cc/bbs/java/M.1435028724.A.5E2.html
→ ssccg: 這個需求直接allocate兩倍長度的buffer就好了吧 06/23 11:26
→ ssccg: StringBuilder底層也只是滿了就重新allocate兩倍長度的 06/23 11:28
→ ssccg: buffer,沒什麼特別的 06/23 11:31
→ ssccg: 如果要類似的,那就是 ByteArrayOutputStream 06/23 11:33
推 Killercat: 用stream啊..... 06/23 12:04
→ Killercat: 這需求很有趣 剛好stream或者java8的stream都能用 06/23 12:05
→ Killercat: "Processing Data with Java SE8 Streams" Oracle官方 06/23 12:06
→ Killercat: 容器來講我會建議用ByteArrayOutputStream 06/23 12:06
→ Killercat: 方法我會建議用Java 8的Stream XD 06/23 12:07
→ Killercat: (不過兩個沒辦法和在一起啦) 06/23 12:07
→ LaPass: 了解,感謝建議 06/23 13:29