Java中List<Byte>转换为byte[]方法比较

本文探讨了在Java中将List<Byte>转换为byte[]的三种方法,包括使用for循环、Apache Commons Lang的ArrayUtils.toPrimitive()和Guava的Bytes.toArray()。通过性能测试发现,对于不同大小的List,不同方法的效率存在显著差异。在小规模数据时,for循环更快;在中等规模数据时,Guava方法优于for循环;但在大规模数据时,Guava方法耗时增加。建议根据具体应用场景选择合适的方法。
摘要由CSDN通过智能技术生成

    在工作中,遇到了对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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值