java - 使用 Iterator 从 HashMap 返回对象

标签 java object iterator hashmap

roomCharacters 是键和值(String 键和 Character 对象)的 HashMap

我需要从集合中返回一个角色。当调用该方法时,我使用迭代器简单地返回它找到的第一个字符。

public Character getCharacter()
{
    Iterator<HashMap.Entry<String, Character>> it = roomCharacters.entrySet().iterator();
    if (it.hasNext())
    {
        HashMap.Entry pair = (Map.Entry)it.next();
        return pair.getValue();
    }        
}

但是编译失败:

  incompatible types: java.lang.Object cannot be converted to Character

显然我误解了某些内容或错过了一步。请建议并解释我哪里出错了。

最佳答案

如果您使用正确的类型参数声明对变量,它将起作用,并且您可以摆脱额外的强制转换:

    HashMap.Entry<String,Character> pair = it.next();

关于java - 使用 Iterator 从 HashMap 返回对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30990596/

相关文章:

java - 使用 java 驱动程序跟踪 Cassandra 查询时出现空指针错误

java - Eclipse 编辑器同步

php - 返回对 PHP 中对象的引用

c++ - 迭代器后继

c++ - 如何在与 C++ 中的派生类型匹配的元素上创建迭代器?

java - 抑制 "Log.v(TAG, ...)"内硬编码字符串的 Lint 警告

java - 如何使用弧度移动物体?

Javascript:访问对象

c++ - C++ 中对象/类的动态数组

c++ - 结束迭代器递减的可移植性如何?