在工作中,遇到了对byte数组的一些处理。目的是根据已有的信息编辑成一组数组并发送给设备。在整个处理过程中,发现直接处理byte数组十分麻烦,需要多次用到数组copy之类的操作,数组的下标操作也比较恶心。后来经过多方查找,发现先利用List<Byte>构建数组内容,无需在乎下标位置,也不用数组copy,只需要无脑Add就可以很方便的构建整个数组,再把List转换为byte[]就可以了。在探索了整个过程之后,发现一篇博文推荐了三种List<Byte>转换为byte[]的方法,并简要说了一句三者的速度差异。我对这个过程比较好奇,因此自己做了一些小小的比较,算是对工作遇到的问题的一个总结。希望对大家有所帮助。
日志原链接如下:
http://blog.csdn.net/jenlyser/article/details/17024875
文中提到了三种方法,分别是1——使用for循环。2——使用Apache Commons Lang库的ArrayUtils.toPrimitive()方法。3——google guava中的Bytes.toArray()方法。并提及这三种方法中第一种最慢,第二种稍快,第三种最快。我这里第二种方法始终报错,似乎是ArrayUtils.toPrimitive()方法并不支持List<>类型的参数。因此只是简单比较了第一、三种方法的速度。代码如下:
/**
* 方法1,使用for循环
* @pa