Java中的byte []和List <byte>有什么区别?</byte>

时间:2015-01-26 12:44:25

标签: java arrays byte

两者都可用于创建字节列表。但它们之间有什么区别?

byte[] buffer;
List<Byte> buffer;

3 个答案:

答案 0 :(得分:9)

  

两者都可用于创建字节数组

不,第一个创建一个字节数组。第二个定义了一个列表字节,根据您使用的List实现,它可能会也可能不会被数组支持。

数组是固定大小并预先分配的;如果你需要增长数组,你需要创建一个 new ,更大的数组,复制内容,然后添加新内容。

另一方面,

列表通常是动态的,随着向它们添加内容而增长,随着从中删除内容而缩小等。一个列表实现ArrayList通过维护后备阵列来实现这一点,通常会有一些松弛,然后在添加时根据需要进行重新分配和复制。

另请注意,List实际上不能包含原始byte值;相反,它将包含Byte个对象(通过一个称为自动装箱的过程)。

答案 1 :(得分:5)

byte[] buffer是一个预先确定的byte数组,没有任何方法可以在Byte上和[]中进行 List<Byte> buffer是Byte对象的List对象,它也有Byte

中定义的方法

答案 2 :(得分:4)

  • byte[]数组具有固定大小,而列表则没有。
  • byte[]数组包含原始 byte值,而列表包含盒装值,因此列表需要更多内存

更多信息: