Java:多次将元素从 Hashmap 添加到 vector

标签 java vector hashmap

我正在尝试检查迷宫中房间的 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 中的变量 View ,房间实际上只在 mazeRooms 中出现一次,而在outerRooms 中出现多次

编辑:Screenshot from debug screen

最佳答案

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

关于Java:多次将元素从 Hashmap 添加到 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9082483/

相关文章:

java - 在java中安排批处理文件每2分钟运行一次

java - 以特殊格式打印二维数组

java - 在 Eclipse 中检查匿名类之外的变量

java - 为什么 Java HashMap get(key) 在使用相同的 HashMaps 迭代器读取键时比使用 Set 的迭代器读取键时工作得更快?

java - 如何使用新 Map 更新 Java HashMap

java - 使用 HashMap 时 Java 11 中的 ClassCastException 而不是 Java 8 中的?

java - MultipleOutputFormat 支持 'Job'

c++ - 提供错误值的 vector 迭代器

c++ - 为什么 C++ 共享指针的行为不像迭代器的标准指针?

math - 使用模式在 MATLAB 中创建向量