创建"重置为原始值"数组的方法(从java开始)

时间:2013-12-06 01:38:31

标签: java arrays methods

我正在研究一种为整数数组执行各种任务的方法。这些方法包括将所有元素向右移动,交换第一个和最后一个元素,以及用0替换元素。我能够成功地为所有这些事物创建方法,但我想创建一个基本上“重置”的方法'数组到原始值,所以我可以从同一组数字中测试每个其他方法。

换句话说:

打印:原始数组为:1,2,3

使用我做的交换方法打印:交换了第一个和最后一个数字的数组是:3,2,1

array.reset()

使用我制作的添加方法进行打印:数组为6& 7添加到最后是:1,2,3,6,7


这是我第一次尝试“重置”方法的方法的开始。我有点迷失了如何设置它,因为我尝试的一切产生了一个错误,我似乎只是为了这样一个〜看似简单的方法。有任何想法吗?

public class Ex2 {
private int[] values;
public Ex2(int [] initialValues) {values = initialValues;}

public void reset(){
    int[] values = values??;
}

2 个答案:

答案 0 :(得分:2)

您需要复制源数组。请注意,此方法适用于基本数组,但对于非基元数组,则需要使用System.arrayCopy()

public class Ex2 {
  private int[] values;
  private int[] savedState;
  public Ex2(int [] initialValues) {
    values = initialValues;
    savedState = initialValues.clone();
  }

  public void reset(){
    values = savedState.clone();
  }
}

答案 1 :(得分:0)

您可以在构造函数中复制initialValues。 代码看起来像这样:

public class Ex2 {
    private int[] values;
    private int[] originValues;

    public Ex2(int [] initialValues) {
        values = initialValues;
        System.arraycopy(values, 0, originValues, 0, values.length);
    }

    public void reset(){
        System.arraycopy(originValues, 0, values, 0, originValues.length);
    }
}