将数组的内容复制到另一个并删除旧数组的内容

时间:2013-03-14 16:01:27

标签: java android arrays copy

我试图在单击按钮后将数组的内容复制到另一个数组。我希望oldArray在复制到newArray后清除以前的数据。我有这个代码,我迷路了。任何人都可以指导我如何做到这一点?这是我到目前为止所拥有的。

    final String [] oldArray;

    oldArray = new String[5];
    oldArray[0] = "c";
    oldArray[1] = "h";
    oldArray[2] = "a";
    oldArray[3] = "r";
    oldArray[4] = "m";

    for (i = 0; i < 5; i++);

        {
            oldarrayOut.setText(oldArray[i]);
        }

    bOk.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub



            String[] newArray = new String[5];

            for (i = 0; i < 5; i++);
                {
                    newArray[i] = oldArray[i];
                    newarrayOut.setText(newArray[i]);
                }



        }
    });

如果我的代码出现问题,请随时通知我。非常感谢你!

4 个答案:

答案 0 :(得分:1)

只需使用:

oldArray = new String[5];

oldArray = null;

所以旧数组不会指向真正的旧数组,而是指向新数组。

第一个更好,如果你知道你将再次使用它,并且你知道阵列的长度。另一个需要被安全处理,因为如果你访问它可能会导致NPE。

答案 1 :(得分:0)

我不确定oldarrayOut和newarrayOut字段在做什么,但它似乎正在推出

oldArray = null;
onClick方法中的for循环之外的

就可以了。

您似乎正在成功复制数组,只是在完成复制后才初始化oldArray。

答案 2 :(得分:0)

for循环后你有一个分号:

for (i = 0; i < 5; i++);
                       ^-- here

将for循环转换为循环,在每次迭代时不执行任何操作。删除它。

要清除旧数组,只需使用

即可
for (i = 0; i < 5; i++) {
    newArray[i] = oldArray[i];
    oldArray[i] = null;
    newarrayOut.setText(newArray[i]);
}

答案 3 :(得分:0)

String[] newArray = (String[]) oldArray.clone();

将数组的内容复制到另一个。 尝试将oldArray复制到newArray。

Arrays.fill( oldArray, null );

删除旧数组的内容