将字节数组转换为List <byte> </byte>

时间:2010-11-20 07:23:35

标签: java data-structures

我能想到这些事情,

  1. Arrays.asList(byte[])byte[]转换为List<byte[]>
  2. 循环遍历字节数组并将每个元素添加到列表
  3. 我只是想知道是否有任何库函数可以做到这一点?

6 个答案:

答案 0 :(得分:14)

对于Byte[]而不是byte[],这可行:

  Byte[] array = ....
  List<Byte> list = Arrays.asList(array);

答案 1 :(得分:11)

Library Apache Commons Lang有ArrayUtils.toObject,它将一个原始数组转换为一个类型化的对象数组:

int array[] = { 1, 2, 3 };
List<Integer> list = Arrays.asList(ArrayUtils.toObject(array));

答案 2 :(得分:9)

this帖子建议:guava Bytes class可以提供帮助:

byte[] bytes = ...
List<Byte> byteList = Bytes.asList(bytes);

答案 3 :(得分:0)

byte[] byteArray;
List<Byte> medianList=new ArrayList<>(); 
int median=0,count=0;
Path file=Paths.get("velocities.txt");
if(Files.exists(file)){
    byteArray=Files.readAllBytes(file);
}
medianList.addAll(Arrays.asList(byteArray));

答案 4 :(得分:0)

我认为没有附加库的最简单的纯Java方法是:

private static List<Byte> convertBytesToList(byte[] bytes) {
    final List<Byte> list = new ArrayList<>();
    for (byte b : bytes) {
        list.add(b);
    }
    return list;
}

但是最好检查两次,是否真的需要从byte转换为Byte

答案 5 :(得分:0)

Java 8 单行 byte[]List<Byte> 的转换,给定 array 作为输入:

List<Byte> list = IntStream.range(0, array.length).mapToObj(i -> array[i]).collect(Collectors.toList());