我在一次採訪中被問到在哪裏已經實現了java類迭代器接口,其中定義了hasNext()
,next()
和remove()
方法。在java類中的java.util.Iterator接口已經實現了嗎?
請讓我知道。這看起來很關鍵。
我在一次採訪中被問到在哪裏已經實現了java類迭代器接口,其中定義了hasNext()
,next()
和remove()
方法。在java類中的java.util.Iterator接口已經實現了嗎?
請讓我知道。這看起來很關鍵。
java.util.AbstractList中是抽象類爲可迭代接口提供實現(通過實施列表界面,其中列出延伸收集IFC;收集延伸可迭代IFC)。
AbstractList具有內部類private class Itr
,它實現Iterator
接口,在此提供hasNext(), next()
方法的實現方法。 因此,iterator():: AbstractList方法提供new Itr()
對象來遍歷該集合。
ArrayList,Vector都是AbstractList的子類,它本質上具有對iterator():: AbstractList API的訪問並返回新的Iterator對象。
Simalarly for Set; AbstractCollection是迭代器實現的抽象類。
我們確實有一個多內部類中java.util.AbstractList中
即 class ListItr extends Itr implements ListIterator
這將使我們遍歷集合中的兩個方向。
的迭代接口在java.util.AbstractList中,http://docs.oracle.com/javase/1.5.0/docs/api/java/util/AbstractList.html實現。以下是來自文檔的解釋:「與其他抽象集合實現不同,程序員不必提供迭代器實現;迭代器和列表迭代器由該類實現,位於」隨機訪問「方法之上:get() INT指數),設置(INT索引,對象元素),設置(INT索引,對象元素)中,添加(INT指數,對象元素)和刪除(INT索引)。「
方法迭代器()返回列表中元素的迭代器。您還將在擴展AbstractList:Vector,ArrayList的類上看到此方法。
這似乎與一年前由@Kanagavelu Sugumar提供的其他答案非常相似 - 此答案如何添加任何內容? – Krease
AbstractList不實現Iterator接口;它實現了Iterable接口。只有iterator():: Iterable.java返回類型是Iterator。 –
您是否考慮查看API文檔?它列出了實現給定接口的類。 –