我设定一个域变量:
 private ArrayList<BufferedImage> matchOriginalImage = new ArrayList<BufferedImage>();
然后用clear方法来清空集合,removeAll也试过,输出size为0:
   public void removeMatchHistogram() {
      originalMatchImage.clear();
      System.out.println(originalMatchImage.size()+"**************************************************");
   }但遍历之下,居然元素还在!令我大惊失色。怎么可能!我发誓没有在其它任何地方对matchOriginalImage 有额外的操作      for(BufferedImage buf:matchOriginalImage){
         System.out.println(buf);
      }

解决方案 »

  1.   

    我有点奇怪哦。呵呵。
    我设定一个域变量:
    Java code private ArrayList<BufferedImage> matchOriginalImage = new ArrayList<BufferedImage>();可清空的时候是originalMatchImage.clear();
      

  2.   

       public void removeMatchHistogram() {
          originalMatchImage.clear();
          System.out.println(originalMatchImage.size()+"**************************************************");
       }
          for(BufferedImage buf:matchOriginalImage){
             System.out.println(buf);
          }
    我觉得能清空才怪
      

  3.   

    。。不能2层套啊originalMatchImage
    matchOriginalImage
      

  4.   

    你清空和调用的是俩List啊。. 四星龙珠先生..
      

  5.   

    顺序绝对没有问题的。
    而且clear()绝对可以清空的。至少Rectangle这个类是可以的。
      

  6.   

    一个清空的是matchOriginalImage ,查找的却是originalMatchImage
      

  7.   

    如楼上如言,这位仁兄你想清空的是matchOriginalImage 但你清空的是originalMatchImage,这是二个集合
      

  8.   

    就相当你去泡b女生,b女生 成了你女朋友,在这问为什么a女生不是你女朋友。
      

  9.   

    本帖最后由 AWUSOFT 于 2010-03-12 11:10:37 编辑
      

  10.   

    楼主清空了,打印当然为0
    但是楼主,你下面for循环打印的时候,那个名字跟声明的不一样啊
      

  11.   

    没人看错 LZ说了输出size是0 可是他便历的那个不是他进行清空操作的集合 LZ还不知道么?..
      

  12.   

    晕。看了楼上的回答。还真是,我也没有注意。
    originalMatchImage.clear();for(BufferedImage buf:matchOriginalImage){
             System.out.println(buf);
          }originalMatchImage == matchOriginalImage ????????????