如何向此数组添加元素?

时间:2013-02-12 22:08:45

标签: java android

有没有办法在这个数组中添加新项目?

            RowMsg RowMsg_data[] = new RowMsg[] {

                    new RowMsg(R.drawable.ic_launcher, "Message 1"),
                    new RowMsg(R.drawable.ic_launcher, "Message 2"),
                    new RowMsg(R.drawable.ic_launcher, "Message 3"),
                    new RowMsg(R.drawable.ic_launcher, "Message 4")

            };

            // here i want add next one element, for example: RowMsg(R.drawable.ic_launcher, "Message 5")

5 个答案:

答案 0 :(得分:3)

没有。您无法向阵列添加元素 - 一旦您创建了阵列,其大小就无法更改。

您最好使用列表:

List<RowMsg> messages = new ArrayList<RowMsg>();
messages.add(new RowMsg(R.drawable.ic_launcher, "Message 1"));
// etc

顺便说一句,将类型信息保存在一个地方更常规,而Java变量通常都是驼峰式的 - 所以即使你确实坚持你的数组,最好将其声明为:

RowMsg[] rowMsgData = new RowMsg[] {
    ...
};

(我还建议避免缩写,但我们去了。)

答案 1 :(得分:1)

如果 确实 需要RowMsg_data成为数组

RowMsg_data = new ArrayList<RowMsg>(Arrays.asList(RowMsg_data))
               .add(new RowMsg(R.drawable.ic_launcher, "Message 5"))
               .toArray();

答案 2 :(得分:0)

如果您使用ArrayList,那么您不必从第一个数组重新分配另一个更大的数组和副本,这全部由ArrayList处理。

以下是ArrayList的{​​{3}}。

答案 3 :(得分:0)

在初始化后,您无法更改数组的大小。使用List例如而是ArrayList<RowMsg>

答案 4 :(得分:0)

    RowMsg_data = Arrays.copyOf(RowMsg_data, RowMsg_data.length);
    RowMsg_data[RowMsg_data - 1] = new RowMsg(R.drawable.ic_launcher, "Message 5");