迭代使用for-each

Jav*_*kar 4 java collections dictionary iterator core

for (String str : m.keySet()) {//this works fine

    }
Run Code Online (Sandbox Code Playgroud)
Set set = m.keySet();
for (String str : set) {//Type mismatch: cannot convert from element type Object to String

    }
Run Code Online (Sandbox Code Playgroud)

两者都做同样的事情,即迭代Set对象的Keys(String),而不是我在第二个代码中得到错误的原因.

Era*_*ran 6

您不应该使用原始Set类型,因为在这种情况下,Set将假定元素的Object类型.

而是指定Set保持的元素类型:

Set<String> set = m.keySet();
for (String str : set) {

}
Run Code Online (Sandbox Code Playgroud)