1

我正在尝试克隆一个数组并作为对象返回,而不是数组类型。z

 public IntVector clone()
 {

     IntVector cloneVector = new IntVector(3);

     int[] newItems = new int[10];
     for(int i=0 ; i<itemCount_; ++i)
      {
      newItems[i] = items_[i];
      }

     cloneVector = newItems; // is there a way to do something like this??

    return cloneVector;
 }

主要方法看起来像这样

  public static void main(String[] args)
  {

   IntVector vector = new IntVector(5);

   vector.push(8);
   vector.push(200);
   vector.push(3);
   vector.push(41);

   IntVector cloneVector = vector.clone();
  }

*还有其他两种创建数组的方法:IntVector() 并将值放入数组:push()

4

1 回答 1

1

声明一个新的构造函数,IntVector它接受一个 int 数组和一个计数:

IntVector(int[] data, int n) {
  items_ = data.clone();
  itemCount_ = n;
}

然后你可以这样写克隆:

public IntVector clone() {
  return new IntVector(items_, itemCount_);
}

如果你愿意,你可以创建新的构造函数private,所以只能clone使用它。

于 2012-09-16T07:56:13.710 回答