[問題] 不定長度的byte陣列該怎麼放?

作者: LaPass (LaPass)   2015-06-23 11:05:20
需要針對byte陣列做運算
要作的動作很簡單
1.把所有的0x01替換成0x0101
2.把所有的0x00替換成0x01
我打算用個迴圈去處理
由於在算完前不知道生成的byte的陣列長度
所以大概需要一個像是StringBuilder之類的東西來放生成到一半的byte
請問該用什麼樣的容器物件去放比較好?
我直覺上會用 ArrayList<Byte>
但怕boxing unbox影響效能
作者: ssccg (23)   2015-06-23 11:26:00
這個需求直接allocate兩倍長度的buffer就好了吧StringBuilder底層也只是滿了就重新allocate兩倍長度的buffer,沒什麼特別的如果要類似的,那就是 ByteArrayOutputStream
作者: Killercat (殺人貓™)   2015-06-23 12:04:00
用stream啊.....這需求很有趣 剛好stream或者java8的stream都能用"Processing Data with Java SE8 Streams" Oracle官方容器來講我會建議用ByteArrayOutputStream方法我會建議用Java 8的Stream XD(不過兩個沒辦法和在一起啦)
作者: LaPass (LaPass)   2015-06-23 13:29:00
了解,感謝建議

Links booklink

Contact Us: admin [ a t ] ucptt.com