对上面的代码大家应该很熟,使用迭代器遍历集合,获取集合中的元素。

而单列集合获取迭代器的方法就使用到了工厂方法模式。

我们看通过类图看看结构:



Collection接口是抽象工厂类,ArrayList是具体的工厂类;

Iterator接口是抽象商品类,ArrayList类中的Iter内部类是具体的商品类。

在具体的工厂类中iterator()方法创建具体的商品类的对象。

另:

1,DateForamt类中的getInstance()方法使用的是工厂模式;

2,Calendar类中的getInstance()方法使用的是工厂模式;

JDK源码解析-Collection.iterator方法相关推荐

  1. JDK源码解析 Runable是一个典型命令模式,Runnable担当命令的角色,Thread充当的是调用者,start方法就是其执行方法

    JDK源码解析 Runnable是一个典型命令模式, Runnable担当命令的角色,Thread充当的是调用者,start方法就是其执行方法 /命令接口(抽象命令角色) public interfa ...

  2. JDK源码解析——Object的hashCode方法

    目录 前言 说明 一.源码目录结构 (1).JDK目录 (2).hotspot目录 二.基础知识 (1).Object Header(对象头) (2).Lock(锁) 1. 无锁 => 偏向锁 ...

  3. JDK源码解析 迭代器模式在JAVA的很多集合类中被广泛应用,接下来看看JAVA源码中是如何使用迭代器模式的。

    JDK源码解析 迭代器模式在JAVA的很多集合类中被广泛应用,接下来看看JAVA源码中是如何使用迭代器模式的. 看完这段代码是不是很熟悉,与我们上面代码基本类似.单列集合都使用到了迭代器,我们以Arr ...

  4. JDK源码解析 Comparator 中的策略模式

    JDK源码解析 Comparator 中的策略模式.在Arrays类中有一个 sort() 方法,如下: public class Arrays{public static <T> voi ...

  5. JDK源码解析 InputStream类就使用了模板方法模式

    JDK源码解析 InputStream类就使用了模板方法模式. 在InputStream类中定义了多个 read() 方法,如下: public abstract class InputStream ...

  6. JDK源码解析 Integer类使用了享元模式

    JDK源码解析 Integer类使用了享元模式. 我们先看下面的例子: public class Demo {public static void main(String[] args) {Integ ...

  7. JDK源码解析 —— IO流中的包装类使用到了装饰者模式

    JDK源码解析 IO流中的包装类使用到了装饰者模式. BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter ...

  8. JDK源码解析之Java.util.Collection

    Collection是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素,JDK 不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现 一.源码解析 1 ...

  9. JDK源码解析之Java.util.Collections

    java.util.Collections 是一个包装类.它包含有各种有关集合操作的静态多态方法.此类不能实例化,就像一个工具类,服务于Java的Collection框架. 一.源码解析 1.不可实例 ...

最新文章

  1. 设计模式 — 创建型模式 — 建造者模式
  2. workerman events.php,workerman安装event扩展的方法介绍
  3. 从ReadImage到ML- 一个不错的博客
  4. (转)oracle表分区详解
  5. vant部署_记录mpvue+vant-weapp的使用(一):安装配置使用,引入vant-weapp
  6. android blowfish加密算法,BlowFish加密算法研究
  7. c语言如何输出结构体数组,怎么才能把结构体里面的二维数组打印出来?
  8. xmlDocument是什么?(转)
  9. sklearn逻辑回归参数详解,及用逻辑回归制作评分卡
  10. 手机wifi显示连接到服务器地址,手机连接路由器wifi上网总是提示正在获取IP地址怎么办...
  11. CAN波特率与负载率
  12. 《Excel效率手册:早做完,不加班》
  13. Redis的多路复用机制
  14. trunc和round区别
  15. Matlab实现遗传算法(附上完整仿真源码)
  16. 区块链(bitcoin)学习
  17. [PAT乙级]1025 反转链表 (思路+精简代码)
  18. 红楼梦java_《红楼梦》最经典的12首诗词,读懂了才是人生
  19. 尽量用pass-by-reference-to-const(const引用)替换pass-by-value(传值)
  20. 5G NR - 38.101-1协议笔记(一)

热门文章

  1. Zabbix JMX之tomcat监控
  2. UWP入门(二) -- 基础笔记
  3. asp.net 导出excel带图片
  4. ThreadGroup其实比ExecutorService更好
  5. Alibaba笔试题:根据关键字求最短摘要字串
  6. C#枚举硬件设备(升级版)
  7. linux中 probe函数的何时调用的?
  8. Camera 涉及的文件70
  9. Java多线程专题一:并发所面临的问题
  10. python学习笔记(05)