Java中的byte[]和List<Byte>有什么区别?
What is the difference between byte[] and List<Byte> in Java?
两者都可用于创建字节列表。但是它们有什么区别呢?
byte[] buffer;
List<Byte> buffer;
byte[]
数组有固定大小,而列表没有。
byte[]
数组包含原始byte
值,而列表包含盒装值,因此列表将需要更多内存
更多信息:
- What's the difference between List and array?
Both can be used to create an array of bytes
不,第一个创建一个字节数组。第二个定义了一个 list 字节,它可能有也可能没有数组支持,具体取决于您使用的 List
实现。
数组是固定大小和预先分配的;如果需要增大数组,则需要创建一个 new,更大的数组,将内容复制过来,然后添加新内容。
另一方面,列表通常是动态的,随着您向其中添加内容而增长,随着您从其中删除内容而缩小,等等。一个列表实现 ArrayList
通过维护支持来做到这一点数组,通常有一些松弛,然后在添加到它时根据需要进行重新分配和复制。
另请注意,List
实际上不能包含原始 byte
值;相反,它将包含 Byte
个对象(通过称为自动装箱的过程)。
byte[] buffer
是一个 premitive 数组 byte
没有任何方法可以在 Byte
和 []
中进行
List<Byte> buffer
是 Byte 对象的列表对象,它也有在 Byte
中定义的方法
两者都可用于创建字节列表。但是它们有什么区别呢?
byte[] buffer;
List<Byte> buffer;
byte[]
数组有固定大小,而列表没有。byte[]
数组包含原始byte
值,而列表包含盒装值,因此列表将需要更多内存
更多信息:
- What's the difference between List and array?
Both can be used to create an array of bytes
不,第一个创建一个字节数组。第二个定义了一个 list 字节,它可能有也可能没有数组支持,具体取决于您使用的 List
实现。
数组是固定大小和预先分配的;如果需要增大数组,则需要创建一个 new,更大的数组,将内容复制过来,然后添加新内容。
另一方面,列表通常是动态的,随着您向其中添加内容而增长,随着您从其中删除内容而缩小,等等。一个列表实现 ArrayList
通过维护支持来做到这一点数组,通常有一些松弛,然后在添加到它时根据需要进行重新分配和复制。
另请注意,List
实际上不能包含原始 byte
值;相反,它将包含 Byte
个对象(通过称为自动装箱的过程)。
byte[] buffer
是一个 premitive 数组 byte
没有任何方法可以在 Byte
和 []
中进行
List<Byte> buffer
是 Byte 对象的列表对象,它也有在 Byte