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