我正在尝试在迷宫中查看房间的散列图,并将外部房间添加到Vector中。房间不断多次添加,任何人都可以帮我找出原因吗?
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中的Variables视图,房间在mazeRooms中只出现一次,在outerRooms中出现多次
编辑:
答案 0 :(得分:1)
在不知道数据的情况下,我的猜测是mazeRooms与多个键具有相同的值。如果您需要收集非重复数据,我建议您使用Set
代替Vector
。
答案 1 :(得分:0)
如果同一个房间多次添加到outerRooms()
,这意味着它会多次出现在mazeRooms
中(使用不同的密钥)。
答案 2 :(得分:0)
您可以使用HashSet而不是Vector来确保每个Room仅录制一次。