如何创建byte[]
(不是Byte
)列表?*
我想要的是这样的:
byte[] deb = new byte[Byte.MIN_VALUE];
List<byte[]> begin = new LinkedList<>();
begin.add(deb);
如何创建byte[]
(不是Byte
)列表?*
我想要的是这样的:
byte[] deb = new byte[Byte.MIN_VALUE];
List<byte[]> begin = new LinkedList<>();
begin.add(deb);
这会很好用,因为数组是Java 中的对象,所以你可以用它们构建List
s。
请注意,只有在 Java 7 中才能执行
List<byte[]> begin = new LinkedList<>();
在旧版本中,您必须重新声明byte[]
:
List<byte[]> begin = new LinkedList<byte[]>();
这已经提出,但我将在这里重申。Byte.MIN_VALUE
小于0
;您不能创建长度小于的数组0
(它会导致运行时错误,特别是 a NegativeArraySizeException
)。你的意思是Byte.MAX_VALUE
?
问题在下面一行
byte[] deb = new byte[Byte.MIN_VALUE]; <---Byte.MIN_VALUE -127
你应该用正值声明你的数组,否则你会得到NegativeArraySizeException。
byte[] deb = new byte[Some positive value];
Byte.MIN_VALUE
是-127
。您不能在 java 中创建负索引数组。
java中的数组是对象。byte[] 是一个保存字节值的数组。集合接受对象,因此 List 是一个包含 byte[] 的集合。您的代码应该可以正常工作。
这应该可以正常工作:
List<byte[]> begin = new LinkedList<byte[]>();
首先,Byte.MIN_VALUE
是-128
。如果你尝试创建一个负长度的数组,你会得到一个错误。
其次,正如其他答案中提到的,创建列表的代码应该是
List<byte[]> begin = new LinkedList<byte[]>();