There are 32 values, each with a size of 4 bytes (8 hex characters).
The values are little endian, which means that the "little end" (the least significant byte) is being transmitted first.
I don't speak Java, but I can show you ugly C++ code:
You could convert the values like this
for(i=0;i<32;i++)
{
strncpy(tempstring,datastring+8*i,8); // copy 8 characters
data[i]=endianswitch(strtoul(tempstring,NULL,16)); // convert the hex string and store the value in the data array
}
where the endianswitch function looks like this
ui32 endianswitch(ui32 x)
{
return ((x>>24) & 0x000000ffU) | ((x>>8) & 0x0000ff00U) | ((x<<8) & 0x00ff0000U) | ((x<<24) & 0xff000000U);
}