我尝试在该站点上进行搜索,但是带有关键字 interator 或 implementation 的线程太多。那么,简而言之,各种标准迭代器实现之间有什么区别?除了 .getClass() 返回不同的字符串这一事实之外,我没有注意到任何不同。
List myList = (List) Arrays.asList("a", "b", "c", "d");
Set hashSet = new HashSet<String>();
Set treeSet = new TreeSet<String>();
ArrayList arrayList = new ArrayList<String>();
System.out.println(arrayList.iterator().getClass());//ArrayList
System.out.println(hashSet.iterator().getClass());//HashSet
System.out.println(myList.iterator().getClass());//List produced by Arrays.asList()
System.out.println(treeSet.iterator().getClass());//TreeSet
结果如下:
class java.util.ArrayList$Itr
class java.util.HashMap$KeyIterator
class java.util.AbstractList$Itr
class java.util.TreeMap$KeyIterator
那么,如果需要,为什么不保留接口供人们在自定义类中实现,并在所有集合中都有一个具体的实现呢?