【问题标题】:Differences between standard iterator implementations标准迭代器实现之间的差异
【发布时间】:2014-06-21 02:17:30
【问题描述】:

我尝试在该站点上进行搜索,但是带有关键字 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

那么,如果需要,为什么不在自定义类中保留供人们实现的接口,并在所有集合中都有一个具体的实现呢?

【问题讨论】:

  • HashMap 和 TreeMap 不是 Collections 接口的一部分
  • @Amir 他们没有实现Collection,但它们是Oracle 称之为the collections framework 的一部分。

标签: java iterator implementation concrete


【解决方案1】:
猜你喜欢
  • 2019-06-06
  • 2016-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-07
  • 2011-04-29
  • 2011-03-12
  • 2013-09-10
相关资源
最近更新 更多