我需要将另一个字节数组(一维)附加到恰好是二维的现有字节数组。
public static byte[][] ALL_MESSAGES = new byte[][] {SMART_POSTER_NO_TEXT, ENGLISH_PLAIN_TEXT, SMART_POSTER_URL_AND_TEXT};
public void AddOtherMessages()
{
OtherMessageClass messages = new OtherMessageClass();
for(NMessage m : messages.Ntexts)
{
ArrayUtil.addAll(ALL_MESSAGES, m);
}
}
显然上面的代码不起作用,因为我使用AddAll将两个数组(一个是多维的)添加到另一个,一个维度数组。我需要一些帮助,请将 m 附加到ALL_MESSAGES。
此外,我需要导入哪些Java命名空间才能执行此操作?
答案 0 :(得分:0)
ArrayUtil是'org.apache.commons.lang'包的一部分。因此,您还必须包含corressponding jar文件才能使用相同的文件。
您将需要apache-commons-lang.jar,您必须导入org.apache.commons.lang.ArrayUtils。有关详细信息,请参阅http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/ArrayUtils.html
for(NMessage m : messages.Ntexts)
{
ArrayUtil.addAll(ALL_MESSAGES, m);
}
上面的代码工作不起作用m不是byte [] []。如果m是byte [],则应使用'add()'方法。如果messages.Ntexts返回byte [] [],你也可以使用'addAll()'方法。
答案 1 :(得分:0)
如果我理解正确,你想在ALL_MESSAGES
添加额外的数组吗?在这种情况下,我认为你应该考虑使用List:
List<byte[]> list = new ArrayList<byte[]>();
然后您可以添加任意数量的byte[]
数组:
list.add(new byte[] {1,2,3}); //just an example
您可以轻松地将它们全部检索出来:
for(byte [] array : list)
{
//do whatever you like with your individual arrays
}
您还可以获得单个元素(就像使用索引运算符一样):
byte [] array = list.get(0);