0

我有一个非常基本的问题。Iterator 是一个接口,因此要创建一个对象,我们需要创建一个实现 Iterator 的类,然后为其创建一个对象。但是当我看到迭代器的使用时,我感到很困惑,因为我们直接引用了一个接口,而没有一个实现它的类。例如 :

HashMap map = new HashMap();
   map.put("1", "One");
   map.put("2", "Two");
   Iterator i = map.entrySet().iterator();

我们怎么会有一个接口的对象!!

4

2 回答 2

5

Iterator 是一个接口,但map.entrySet().iterator()返回一个实现 Iterator 接口的对象。

于 2012-05-14T11:04:18.450 回答
0

您将从该调用中获得一些实现。您不能只假设被强制执行(和记录)的东西是迭代器接口。寻找“匿名内部阶级”。

于 2012-05-14T11:04:05.863 回答