public static ArrayList<Byte> byteArrayToArrayList(byte[] byteArray,int offset){
  ArrayList<Byte> list=new ArrayList<Byte>(byteArray.length);
  for (int i=offset; i < byteArray.length; i++) {
    list.add(Byte.valueOf(byteArray[i]));
  }
  return list;
}

public static ArrayList < Byte > byteArrayToArrayList ( byte [ ] byteArray , int offset ) { ArrayList < Byte > list = new ArrayList < Byte > ( byteArray . length ) ; for ( int i = offset ; i < byteArray . length ; i ++ ) { list . add ( Byte . valueOf ( byteArray [ i ] ) ) ; } return list ; }
converts the given array of bytes into a java arraylist starting from the given offset
