我有一个非常基本的问题。 Iterator是一个接口,因此要创建一个对象,我们需要创建一个实现Iterator的类,然后为它创建一个对象。但是当我看到迭代器的使用时,它让我很困惑,因为我们直接引用一个接口而没有一个实现它的类。例如:
HashMap map = new HashMap();
map.put("1", "One");
map.put("2", "Two");
Iterator i = map.entrySet().iterator();
为什么我们有一个接口的对象!!
答案 0 :(得分:5)
Iterator是一个接口,但map.entrySet().iterator()
返回一个实现Iterator接口的对象。
答案 1 :(得分:0)
你将从该电话获得一些实施。你不能假设强制(和记录)的事物是迭代器接口。寻找“匿名内部阶级”。