Java:向多个时间向多个向量添加元素到向量从HashMap向我添加元素
问题描述:
我试图在迷宫中查找房间的散列图,并将外部房间添加到向量中。房间不断增加多次,任何人都可以帮我弄清楚为什么?Java:向多个时间向多个向量添加元素到向量从HashMap向我添加元素
public void fillOuterRoomVector()
{
//initialize the vector
outerRooms = new Vector<Room>();
//for each one
for(Entry<String, Room> e : mazeRooms.entrySet())
{
//if it is outer
if (e.getValue().isThisAnOuterRoom()==true)
{
//add it
outerRooms.add(e.getValue());
}
}
}
编辑:我在变量检查查看在Eclipse中,而我调试,房间真的只出现一次mazeRooms而且不止一次在outerRooms
编辑:
答
如果同房被多次添加到outerRooms()
,这意味着它不止一次出现在mazeRooms
(使用不同的密钥)。
答
在不知道数据的情况下,我的猜测是mazeRooms与多个键具有相同的值。如果您的需要是收集非重复数据,我建议使用Set
而不是Vector
。
答
您可以使用HashSet而不是Vector来确保每个房间只记录一次。
'mazeRooms'如何填充?它是否可以包含具有不同密钥的重复“房间”? – 2012-01-31 15:51:43
可能是一个Instace of Room会在Map中多次存在?这可以解释它。你不检查Room实例的uniqness。 – breezee 2012-01-31 15:51:51
这是带有字符串键的房间的散列图,每个房间只出现一次 – BIU 2012-01-31 15:52:27