-2

How is it possible to store data (bytes) input like this: input data (bytes) : 01 23 45 and 67 89 10

At the end Arraylist row : [[01,23,45],[67,89,10]]

 // declaration
 List<List<Byte>> row = new ArrayList<List<Byte>>();
 List<Byte> myBytes = new ArrayList<Byte>();
 int j=0;

// code before this defines the arraylengt to cut the buffer in pieces of 3 bytes
// and clears the Mybytes arraylist to be able to fill the buffer with new values

if(arrayLength > 0)
{

    myBytes.add(value); // fill first arraylist (buffer) with byte value (for example: 01)

    if(arrayLength == 1) // when buffer myBytes is full (with values 01 23 45) write value to position j in the new arraylist
    {
        row.add(j,new ArrayList<Byte>());
        row.set(j,myBytes);
        j +=j;
    }
     arrayLength -= 1; // for cutting the buffer in pieces of 3 bytes
}

Thank you for helping me !!

4

3 回答 3

0

我找到了答案,使用数组列表来缓冲转换为字节数组的值并将它们放在另一个数组列表中。多谢你们 !注意:请确保你使用 myBytes.clear(); 这是我的代码:

if(bool == true)
{
 myBytes.add(value); // buffer        
 if(arrayLength == 1)
 {

    byte[] data = new byte[myBytes.size()];
    for (int i = 0; i < data.length; i++) 
    {
     data[i] = (byte) myBytes.get(i);
    }

    row.add(data);
 }      
 arrayLength -= 1;
}
于 2013-05-21T22:33:02.513 回答
0

我建议只使用大小为 [n][3] 的矩阵。您可以通过添加 if 来确保它保持为一个字节,并且必须使其成为一个 int 矩阵,这样它就可以拥有任意多的行。

于 2013-05-20T17:19:11.407 回答
0

只需将 Arraylist 与 Array of Bytes 一起使用new ArrayList<Byte[]>();。这是生成 [n][3]-Matrix 的好方法。

于 2013-05-20T17:23:58.973 回答