Set中*元素的类型是什么?

时间:2014-03-09 22:51:56

标签: java set

我有这段代码:

for(GlCapabs_e capName : capabs.keySet()){
    x = capName.get();
}

其中GlCapabs_eenumcapabsEnumMap<GlCapabs_e, Boolean>。但是GlCapabs_e输入错误,因为我无法在get()上使用capName;它不能是常量,它必须是支持get()的类型所以要返回键的值。

我已经阅读过Java文档中的某个地方(我再也找不到了)“{特殊”类型存在,如elementOfitemOf或类似的东西,但谷歌搜索它们并没有返回任何内容关于我的事。在此之上,我不确定这是否是我应该使用的类型。

1 个答案:

答案 0 :(得分:1)

你正在迭代keySet。如果要获取映射到密钥集中每个密钥的值,请使用EnumMap检索值

for(GlCapabs_e capName : capabs.keySet()){
    x = capabs.get(capName);
}

或迭代entrySet

for (Entry<GlCapabs_e, Boolean> entry : capabs.entrySet()) {
    x = entry.getValue(); // the entry holds both the key and the mapped value
}

请记住,EnumMapMap的一个实现,因此它继承/实现了它的所有方法。