在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());
}
}
}
|