0

如何创建byte[](不是Byte)列表?*

我想要的是这样的:

byte[] deb = new byte[Byte.MIN_VALUE];
List<byte[]> begin = new LinkedList<>();
begin.add(deb);
4

5 回答 5

8

这会很好用,因为数组是Java 中的对象,所以你可以用它们构建Lists。


请注意,只有在 Java 7 中才能执行

List<byte[]> begin = new LinkedList<>();

在旧版本中,您必须重新声明byte[]

List<byte[]> begin = new LinkedList<byte[]>();

这已经提出,但我将在这里重申。Byte.MIN_VALUE小于0;您不能创建长度小于的数组0(它会导致运行时错误,特别是 a NegativeArraySizeException)。你的意思是Byte.MAX_VALUE

于 2012-10-29T14:04:11.077 回答
0

问题在下面一行

 byte[] deb = new byte[Byte.MIN_VALUE]; <---Byte.MIN_VALUE -127 

你应该用正值声明你的数组,否则你会得到NegativeArraySizeException

byte[] deb = new byte[Some positive value];

Byte.MIN_VALUE-127。您不能在 java 中创建负索引数组。

于 2012-10-29T14:03:59.640 回答
0

java中的数组是对象。byte[] 是一个保存字节值的数组。集合接受对象,因此 List 是一个包含 byte[] 的集合。您的代码应该可以正常工作。

于 2012-10-29T14:04:44.840 回答
0

这应该可以正常工作:

List<byte[]> begin = new LinkedList<byte[]>();
于 2012-10-29T14:05:03.893 回答
0

首先,Byte.MIN_VALUE-128。如果你尝试创建一个负长度的数组,你会得到一个错误。

其次,正如其他答案中提到的,创建列表的代码应该是

List<byte[]> begin = new LinkedList<byte[]>();
于 2012-10-29T14:08:15.787 回答