Java:多次从Hashmap向向量添加元素

时间:2012-01-31 15:49:03

标签: java vector hashmap

我正在尝试在迷宫中查看房间的散列图,并将外部房间添加到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中出现多次

编辑:Screenshot from debug screen

3 个答案:

答案 0 :(得分:1)

在不知道数据的情况下,我的猜测是mazeRooms与多个键具有相同的值。如果您需要收集非重复数据,我建议您使用Set代替Vector

答案 1 :(得分:0)

如果同一个房间多次添加到outerRooms(),这意味着它会多次出现在mazeRooms中(使用不同的密钥)。

答案 2 :(得分:0)

您可以使用HashSet而不是Vector来确保每个Room仅录制一次。