使用 for-each 进行迭代

问题描述 投票:0回答:2
for (String str : m.keySet()) {//this works fine

    }

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

    }

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

java dictionary collections iterator
2个回答
6
投票

您不应使用原始

Set
类型,因为在这种情况下,
Set
的元素将被假定为
Object
类型。

相反,指定

Set
所持有的元素类型:

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

}

1
投票

因为 Set 不知道要使用哪种类型,所以它抛出异常,你必须使用

String
作为它的通用提要。就像下面的片段

Set<String> set = m.keySet();
© www.soinside.com 2019 - 2024. All rights reserved.