java如何求迭代器长度_从零开始的Java学习记录(31)——容器基础与迭代器

e1032e28941784a51736773b299bb8ba.png内容概览

5a6248719eab539b6cda4d7ca48f5a7b.png

1. 数组与容器

数组作为一种存储数据的引用数据类型,它的基本特点是固定长度。这常常为开发者带来不便,如下标越界异常,每次要添加或读取数据时,都要先判断该数组的长度。

为了方便起见,Java在数组的基础之上设置了很多容器类,往大了分两种:Collection与Map,Collection下又分List与Set两大类。

这三大类的共同特点是:Collection,Map,List,Set都是接口,每个接口封装了大量方法,效率较之数组要高,

自动扩容,

只能存储引用数据类型,即不能存int,但能存Integer类。

不同点:List:此接口继承Collection接口,有序可重复;

Set:此接口也是继承Collection接口,无序且不可重复;

Map:存储键值对,键(key)值不可重复且不能为空,而值(value)可重复且可为空。

图源菜鸟教程680cfcd0626634d002fbf6b47a907fd9.png集合框架图

简化版:40cf5934a563fed6cc43e1527afbd5ad.png简化版

8b22ab26ef493287a87a82da4f4b89c6.png

2. 迭代器Iterator

迭代器Iterator是一个用来遍历集合类的工具接口,能让开发人员非常便利地进行输出删除等操作,迭代器不适用于Map。284feb20094ec7e2793e4e0c0d991314.pngIterator测试

注意点:集合类存放的都是对象的引用,而非对象本身

迭代器是一次性的,用完就没

it.next()方法是必须的,因为it.hasNext()是判断下一个是否存在,而跳到此对象则是it.next()完成的。

it.remove()方法删除的集合中的对象引用,而迭代器本来就是一次性的故不需要删除1e2af2b0fb3d98c0f2105c616d5886dc.png迭代器常用方法

8b22ab26ef493287a87a82da4f4b89c6.png

3. ListIterotor

ListIterator是Iterator的子类,相较于Iterator,ListIterator更加灵活能进行反向遍历,且方法比Iterator稍微多一点,但只适用于List及其子类。c84b0b9743fa08b4186967975866b38a.pngListIterator

注意点:ListIterator遍历后可直接反方向遍历,非一次性的;

增强for循环,即for each本身就是个迭代器,故Set与List可用该循环遍历。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值