一般在网络、文件中,经常用到 byte[] 数组,但这次小编遇到一个互转的问题,发现原生 JDK 自带的方法贼麻烦,于是想到了 Guava 神器。
1、使用 for 循环
privatebyte[] listTobyte(List<Byte>list) { if (list==null||list.size() <0) returnnull; byte[] bytes=newbyte[list.size()]; inti=0; Iterator<Byte>iterator=list.iterator(); while (iterator.hasNext()) { bytes[i] =iterator.next(); i++; } returnbytes; }
Ps:这种方式很慢。
2、使用 Apache 官网提供的 JAR 里的方法
privatebyte[] listTobyte(List<Byte>list) { byte[] bytes=ArrayUtils.toPrimitive(list); returnbytes; }
AR下载地址:http://commons.apache.org/proper/commons-lang/download_lang.cgi
3、使用 Google 提供的 JAR 里的方法
privatebyte[] listTobyte(List<Byte>list) { byte[] bytes=Bytes.toArray(list); returnbytes}
com.google.guava
guava
20.0
附
byte[] 数组转 List
byte[] bytesArray=newbyte[]{1,2,3,4,5}; List<Byte>byteList=newArrayList<>(); byteList.addAll(Bytes.asList(bytesArray));