您的位置:网站首页 > 源码环境 > 正文

Java源码分析:深入探讨Iterator模式

类别:源码环境 日期:2018-7-30 0:44:55 人气: 来源:

  add()方法将添加一个新元素。注意这个方返回一个boolean,但是返回值不是表示添加成功与否。仔细阅读doc可以看到,Collection:如果一个集合添加这个元素,无论任何原因,都必须抛出异常。这个返回值表示的意义是add()方法执行后,集合的内容是否改变了(就是元素有无数量,等变化),这是由具体类实现的。即:如果方法出错,总会抛出异常;返回值仅仅表示该方法执行后这个Collection的内容有无变化。

  Object[] toArray()方法很简单,把集合转换成数组返回。Object[] toArray(Object[] a)方法就有点复杂了,首先,返回的Object[]仍然是把集合的所有元素变成的数组,但是类型和参数a的类型是相同的,比如执行:

  其次,如果参数a的大小装不下集合的所有元素,返回的将是一个新的数组。如果参数a的大小能装下集合的所有元素,则返回的还是a,但a的内容用集合的元素来填充。尤其要注意的是,如果a的大小比集合元素的个数还多,a后面的部分全部被置为null。

  奥秘在于客户端自身不遍历集合的指针,所有的内部状态(如当前元素,是否有下一个元素)都由Iterator来,而这个Iterator由集合类通过工厂方法生成,因此,它知道如何遍历整个集合。蒋梦婕天天向上

  本文由 325游戏(m.325games.com)整理发布

关键词:java源码学习
0
0
0
0
0
0
0
0
下一篇:没有资料

网友评论 ()条 查看

姓名: 验证码: 看不清楚,换一个

推荐文章更多

热门图文更多

最新文章更多

关于联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助

CopyRight 2002-2012 技术支持 源码吧 FXT All Rights Reserved

赞助合作: