Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用迭代器_Java_Oop - Fatal编程技术网

Java 使用迭代器

Java 使用迭代器,java,oop,Java,Oop,我心里有一个非常基本的问题。迭代器是一个接口,所以要创建一个对象,我们需要创建一个实现迭代器的类,然后为它创建一个对象。但当我看到迭代器的使用时,我感到困惑,因为我们直接引用接口,而没有实现它的类。例如: HashMap map = new HashMap(); map.put("1", "One"); map.put("2", "Two"); Iterator i = map.entrySet().iterator(); 为什么我们有一个接口对象 您将从该调用中获得一些实现

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

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

为什么我们有一个接口对象

您将从该调用中获得一些实现。您只能假设迭代器接口是强制(和记录)的。查找“匿名内部类”。

您将从该调用中获得一些实现。您只能假设迭代器接口是强制(和记录)的。查找“匿名内部类”。

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

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

那么:
Map-Map=newhashmap()
?@AlexStybaev它将为您提供一个新的
HashMap
实例,可以像任何
Map
@DerMike一样访问它。这和迭代器一样,不是吗?只是
Iterator
接口的一个实现。我认为问题在于@Amit没有看到
Iterator
方法返回的实现
Iterator
的类。此类是
HashMap
中的内部类,不是公共类。是的。那么:
Map Map=newhashmap()
?@AlexStybaev它将为您提供一个新的
HashMap
实例,可以像任何
Map
@DerMike一样访问它。这和迭代器一样,不是吗?只是
Iterator
接口的一个实现。我认为问题在于@Amit没有看到
Iterator
方法返回的实现
Iterator
的类。此类是
HashMap
中的内部类,不是公共类。添加:这里是
HashMap
使用的真实类。添加:这里是
HashMap
使用的真实类。