Vector添加元素时,内容重复但是长度是正确的?

tesonic 2009-09-02 11:48:56
Vector添加元素时,内容重复但是长度是正确的?这是怎么回事啊?

Vector<Rectangle> vRectangle = new Vector<Rectangle>();
Rectangle selectionRectangle = new Rectangle();
vRectangle.add(frm.selectionRectangle);
System.out.println("frm.selectionRectangle------------" +
frm.selectionRectangle);
System.out.println("vRectangle" + vRectangle);
System.out.println("vRectangle.size() " + vRectangle.size());

结果是这样的:

//第一次添加
frm.selectionRectangle------------java.awt.Rectangle[x=223,y=125,width=338,height=195]
vRectangle[java.awt.Rectangle[x=223,y=125,width=338,height=195]]
vRectangle.size() 1

//第二次添加
frm.selectionRectangle------------java.awt.Rectangle[x=287,y=369,width=358,height=140]
vRectangle[java.awt.Rectangle[x=287,y=369,width=358,height=140], java.awt.Rectangle[x=287,y=369,width=358,height=140]]
vRectangle.size() 2

...全文
144 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tesonic 2009-09-03
  • 打赏
  • 举报
回复
哦,那我应该怎么写呢??[Quote=引用 5 楼 believefym 的回复:]
引用
vRectangle.add(frm.selectionRectangle);

你加的反正就是frm.selectionRectangle,只要引用没变,自然是同一个东西

obj.value=1;
vector.add(obj)
obj.value=2
vector.add(obj)

结果vector里有两个 ,但是每个obj的value都是2,因为就是同一个 ,你改 了一个,前面那个自然也会变
[/Quote]
believefym 2009-09-02
  • 打赏
  • 举报
回复
[Quote=]
vRectangle.add(frm.selectionRectangle);
[/Quote]
你加的反正就是frm.selectionRectangle,只要引用没变,自然是同一个东西

obj.value=1;
vector.add(obj)
obj.value=2
vector.add(obj)

结果vector里有两个 ,但是每个obj的value都是2,因为就是同一个 ,你改 了一个,前面那个自然也会变
tesonic 2009-09-02
  • 打赏
  • 举报
回复
大家帮帮忙解决一下啊~~~万分感激啊~~~
tesonic 2009-09-02
  • 打赏
  • 举报
回复
我什么时候加了两次啊?[Quote=引用 2 楼 inthirties 的回复:]
vection当然是可以重复的呀,你加了两次,

map才不能重复。老的value被新的value冲掉。
[/Quote]
inthirties 2009-09-02
  • 打赏
  • 举报
回复
vection当然是可以重复的呀,你加了两次,

map才不能重复。老的value被新的value冲掉。
tesonic 2009-09-02
  • 打赏
  • 举报
回复
大家帮忙看看啊

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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