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
使用的真实类。