2
我很努力地編寫一個從陣列中讀取數組而不創建臨時數組的算法。從數組數組中讀取任意長度的數組
這裏是我的想法:
[data correspond to a byte[][] that contains the data we want to read from]
[each arrays can be of arbitrary sizes. No assumption can be done there]
[limit is the sum of bytes that has been wrote to data beforehand. (Appending an array of size X increment limit by X - 1)]
[position is the current position that has been read by previous calls to read(...)]
1) Skip until array that belongs to position is reached
2) Copy from saved position in the array to the output array
3) Move to next array
4) Copy as much bytes as we can into the output buffer
5) Repeat 3-4 until output buffer is filled with the proper amount of data or we've reached the end of the data.
一個例子(POS = 12,長度= 16):
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ] // Skip this row as pos > row.length
[ ][ ][X][X][X][X][X] // Read from position 2 (row.length - relative pos) until end of array
[X][X][X][X][X][X][X][X] // Read entire array as length left > row.length
[X][X][X][ ][ ][ ][ ][ ][ ] // Read from 0 to length left (aka 3)
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
感謝您的幫助!
*「看來它不工作」 *你能解釋更多的是什麼?發生什麼事? – 4castle
我的意思是,當我運行該方法時,我不輸出正確的序列。 但我一直在想,我認爲我搞砸了srcOffset&position 由於指針不移動,位置指針會給出錯誤的值。 – Romain