紧急求救!!为什么集合无法清空。

孤尽JavaSea 2010-03-12 10:10:28
我设定一个域变量:
 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);
}


...全文
174 17 打赏 收藏 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
huajia136651 2010-03-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 qingralf 的回复:]
我有点奇怪哦。呵呵。
我设定一个域变量:
Java code private ArrayList<BufferedImage> matchOriginalImage = new ArrayList<BufferedImage>();

可清空的时候是originalMatchImage.clear();

[/Quote]果然是火眼金睛啊,这都发现了,靠
okmyhoney 2010-03-12
  • 打赏
  • 举报
回复
清空对象不对!
sky123123 2010-03-12
  • 打赏
  • 举报
回复
用Iterator来清空吧
liguang168 2010-03-12
  • 打赏
  • 举报
回复
晕。看了楼上的回答。还真是,我也没有注意。
originalMatchImage.clear();

for(BufferedImage buf:matchOriginalImage){
System.out.println(buf);
}

originalMatchImage == matchOriginalImage ????????????
BearKin 2010-03-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 awusoft 的回复:]
虽然两个方法是不同的对象,但大家也不要看漏了,打印的是清空的那个对象.
originalMatchImage.clear();
System.out.println(originalMatchImage.size()+"**************************************************");

两个都是originalMatchImage,并不是说清空一个,打印另一个.

希望楼主没有打印错.
[/Quote]
没人看错 LZ说了输出size是0 可是他便历的那个不是他进行清空操作的集合 LZ还不知道么?..
bunrise 2010-03-12
  • 打赏
  • 举报
回复
楼主清空了,打印当然为0
但是楼主,你下面for循环打印的时候,那个名字跟声明的不一样啊
awusoft 2010-03-12
  • 打赏
  • 举报
回复
虽然两个方法是不同的对象,打印的是清空的那个对象.
originalMatchImage.clear();
System.out.println(originalMatchImage.size()+"**************************************************");

两个都是originalMatchImage,并不是说清空一个,打印另一个.

希望楼主没有打印错.
chenliuyang 2010-03-12
  • 打赏
  • 举报
回复
就相当你去泡b女生,b女生 成了你女朋友,在这问为什么a女生不是你女朋友。
zhouenya 2010-03-12
  • 打赏
  • 举报
回复
如楼上如言,这位仁兄你想清空的是matchOriginalImage 但你清空的是originalMatchImage,这是二个集合。。。
jiujiang88 2010-03-12
  • 打赏
  • 举报
回复
一个清空的是matchOriginalImage ,查找的却是originalMatchImage
孤尽JavaSea 2010-03-12
  • 打赏
  • 举报
回复
顺序绝对没有问题的。
而且clear()绝对可以清空的。至少Rectangle这个类是可以的。
Dazzlingwinter 2010-03-12
  • 打赏
  • 举报
回复
这就是传说中的
神不知鬼不觉的
自己都不知道的
声东击西的暗度陈仓?
尔后山雨欲来风满楼欲罢还休?
BearKin 2010-03-12
  • 打赏
  • 举报
回复
你清空和调用的是俩List啊。. 四星龙珠先生..
soli11722984 2010-03-12
  • 打赏
  • 举报
回复
。。。。。不能2层套啊

originalMatchImage
matchOriginalImage
soli11722984 2010-03-12
  • 打赏
  • 举报
回复
   public void removeMatchHistogram() {
originalMatchImage.clear();
System.out.println(originalMatchImage.size()+"**************************************************");
}

      for(BufferedImage buf:matchOriginalImage){
System.out.println(buf);
}


我觉得能清空才怪
qingralf 2010-03-12
  • 打赏
  • 举报
回复
我有点奇怪哦。呵呵。
我设定一个域变量:
Java code private ArrayList<BufferedImage> matchOriginalImage = new ArrayList<BufferedImage>();

可清空的时候是originalMatchImage.clear();
bunrise 2010-03-12
  • 打赏
  • 举报
回复
说明你的代码绝对有问题
或者执行顺序有问题

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧