LeftMul函数倒是没有问题,问题在于你的测试代码中,构造出来的bList三个元素全都指向aList,而经过三次构造,aList的内容成为(12,22,32,42,52,62);最后调用LeftMul函数时,实际上是对aList做了三次add(0, new Integer(1))。

解决方案 »

  1.   

    to  echou(岸边蚕豆):
    那测试代码应该如何改动???
      

  2.   

    改如下:
    ArrayList bList = new ArrayList();
    ArrayList aList = new ArrayList();
    aList.add(new Integer(1));
    aList.add(new Integer(2));
    aList.add(new Integer(3));
    aList.add(new Integer(4));
    aList.add(new Integer(5));
    aList.add(new Integer(6));
    bList.add((ArryList)aList.clone());
    aList.clear();
    aList.add(new Integer(11));
    aList.add(new Integer(21));
    aList.add(new Integer(31));
    aList.add(new Integer(41));
    aList.add(new Integer(51));
    aList.add(new Integer(61));
    bList.add((ArryList)aList.clone());
    aList.clear();
    aList.add(new Integer(12));
    aList.add(new Integer(22));
    aList.add(new Integer(32));
    aList.add(new Integer(42));
    aList.add(new Integer(52));
    aList.add(new Integer(62));
    bList.add(aList);
    ArrayList cList = LeftMul(new Integer(1),bList);
    bList = cList;
    String sTemp = "";for (int iTemp=0;iTemp < bList.size();iTemp++)
    {
      aList = (ArrayList)bList.get(iTemp);
      for (int jTemp = 0;jTemp < aList.size();jTemp++)
    {
        sTemp = sTemp + aList.get(jTemp) + "'";
      }
    sTemp = sTemp + "\n";
    }
    System.out.println(sTemp);