Android Java将单维字节数组添加到双维字节数组中

时间:2012-09-17 03:18:10

标签: java

我需要将另一个字节数组(一维)附加到恰好是二维的现有字节数组。

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命名空间才能执行此操作?

2 个答案:

答案 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);