此代码中临时Vector实例的用途是什么?

时间:2009-10-01 08:25:31

标签: java vector

请向我解释此代码;我不明白为什么需要额外的向量TempC

Vector A = new Vector();
Vector B = R.funcVector("TemporaryVector");

if(B!=null)
{
  for(int i=0;i<B.size();i++)
  {
    Vector TempC = new Vector();
    Vector D = new Vector();

    TempC = (Vector)B.elementAt(i);

     if(...)
     {
        D.addElement(TempC.elementAt(1);

        // ...

        A.addElement(D);
     }
  }
}

1 个答案:

答案 0 :(得分:2)

首先提出一个问题 - 您是否编写了此代码,还是可以责怪其他人?这是不正确的,非常混淆。 Java至少有一些命名约定......

在此代码中 - 或者至少在更正后的版本中 - 您将向量存储在向量中。从B获取Vector,将其指定给局部变量,将此向量中的第一个元素添加到矢量A,将整个矢量A添加到D.

您不需要'TempC',但它至少增加了代码的清晰度;)

你可以做一个

D.addElement(((Vector) B.getElementAt(i)).elementAt(1));

以及。

修改

这是去混淆的代码 - 至少我是如何理解的;):

Vector<Vector<Object>> a = new Vector<Vector<Object>>();
Vector<Vector<Object>> b = createVector(r, "TemporaryVector");

if (b != null) {
  for(Vector<Object> tempC: b) {
    Vector d = new Vector<Object>();

    if(isOk()) {
      d.addElement(TempC.elementAt(1));

      // more calculations

      a.addElement(d);
    }
  }
}