|
3Java金币
本帖最后由 瀚海扁舟 于 2015-1-24 00:50 编辑
在java中Set<T>是一个接口,但是在使用HashMap时,却有一个keySet()的方法,返回的是Set对象,而且Set<String> keySet=hm.keySet();能够通过编译,并运行,很是不理解,Set是接口,接口不是不能实例化么?以下是我的代码
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class MainActivity
{
public static void main(String[] args)
{
HashMap<String, String> hm = new HashMap<String, String>();
hm.put("张三", "北京");
hm.put("李四", "天津");
hm.put("王五", "上海");
Set<String> keySet=hm.keySet();
Iterator<String> it = keySet.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
|
最佳答案
查看完整内容
您好,HashMap里面的keySet()方法,并不是直接返回Set对象,而是返回的是实现Set接口的KeySet类的对象实例。
下面是keSet()方法的具体源码:
|