当前位置:首页 > 网上商城 > 正文内容

Java源码的Iterator模式是什么呢?

访客2021-06-01 14:49:02网上商城70

  集合类的根接口Collection

Collection接口是所有集合类的根类型。它的一个主要的接口方法是:

boolean add(Object c)

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

类似的还有:

boolean addAll(Collection c);

boolean remove(Object o);

boolean removeAll(Collection c);

boolean remainAll(Collection c);

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

String[] o = (String[])c。toArray(new String[0]);

得到的o实际类型是String[]。
  

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

最后一个最重要的方法是iterator(),返回一个Iterator(迭代子),用于遍历集合的所有元素。
  

用Iterator模式实现遍历集合

Iterator模式是用于遍历集合类的标准访问方法。它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。

例如,如果没有使用Iterator,遍历一个数组的方法是使用索引:

for(int i=0; i

而访问一个链表(LinkedList)又必须使用while循环:

while((e=e。
  next())!=null) { 。。。 e。data() 。。。 }。

分享给朋友:

相关文章

淘宝交易的笔数还有商品的类别是怎么算的?

淘宝交易的笔数还有商品的类别是怎么算的?

交易笔数: 搜索销量是指买家通过搜索行为,产生的宝贝购买的销量,即买家通过搜索找到宝贝并产生的销量。 搜索诊断助手升级新功能具体详情请点击这里查看。 为了更好的营造公平/透明/良性的市场竞争环境,也为了更好的提升买家购物体验,2012年3月...

印度版支付宝是什么平台?

印度版支付宝是什么平台?

“我完全没有想到回国就能用上印度版支付宝(PAYtm),太让人兴奋了!”曾经留学中国,熟知支付宝和微信的小伙子乔普拉很满意现在的消费便捷状态,手机支付让他感觉在德里生活与在上海没太大区别。对于印度这样的传统现金社会来说,移动支付的逐渐普及的...

第三方平台购买保险

第三方平台购买保险

保险小编帮您解答,更多疑问可在线答疑。 寿险越早买保费越低寿险产品的费率会随着被保险人年龄的增长而提高。如果是同样的保额,40岁时买与20岁时买在费率上可能会多花30%左右,老年人买寿险产品时的保费较高,甚至还会出现保费总和大于保额的“倒挂...

京东尼康官方旗舰店靠谱吗

京东尼康官方旗舰店靠谱吗

京东最好买自营的东西,官方旗舰店应该靠谱。不过单反这东西我觉得实体店买更好,当场验货,也省的你担心物流运输中出问题 京东和天猫上买东西哪个比较靠谱,东西有保证?想买蛋白粉和摇表器。 淘宝(天猫)京东都有好的和坑的。淘宝算了。。天猫建议选择官...

在中国,有哪些比较好的电商平台推荐?

在中国,有哪些比较好的电商平台推荐?

平台受众不同 大家可看得出同样的商品,在各个平台的受众不一样,所以我们选品的时候要考虑我的商品在什么平台好卖。 比如抖音短视频这种APP,女性用户多,年轻人多,所以在抖音关注个护化妆的比其他的多,汽车用品排行第二。 抖音短视频平台的鲁班热门...

为什么我在QQ秀网站里面买东西总是说系统错误?

为什么我在QQ秀网站里面买东西总是说系统错误?

此情况可能是由于您的系统繁忙的原因导致,建议您更换一个时间进行查看,也建议您登录QQ秀商城 , 在QQ秀形象左下角点击“恢复到原始形象”按扭。再点击“保存形象”对QQ秀进行原始形象的保存。然后再保存商城“我的QQ秀” —“我的物品”—“经...