当前位置:   article > 正文

JAVA---集合类和迭代器_java中的迭代器是取出集合的方式

java中的迭代器是取出集合的方式

目录

为什么出现集合类?

存储对象的方式有哪些?

集合和数组有何不同?

集合框架:

什么是集合框架

为什么会出现这么多集合类呢?

集合和对象的关系:

迭代器:


为什么出现集合类?

面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式

存储对象的方式有哪些?

集合和数组

集合和数组有何不同?

数组虽然也可以存储对象,但长度是固定的,可以存对象,也可以存储基本数据类型,但只能存相同数据类型的数据

集合长度是可变的,只能存对象,可以存不同类型的数据

集合框架

什么是集合框架

  • 集合类:封装存储数据方法和数据结构的容器类
  • 集合框架:对集合类进行统一管理的体系结构。

为什么会出现这么多集合类呢?

因为每一个集合类对数据的存储方式都有不同,这个存储方式称之为:数据结构

集合和对象的关系:

集合中存的是对象的地址

 

迭代器

  • 是集合的取出元素的方式,因为每一个集合类的数据结构不同,所以取出的动作细节也不一样,但是都有共性内容:判断和取出,那么就将共性内容抽取出来形成了一个接口,就是迭代器Iterator,把取出方式定义在各个集合的内部,这样取出方式就可以直接访问集合内部的元素,那么取出方式就被定义成了内部类,使这些内部类都符合一个规则,该规则是Iterator,如何获取集合的取出对象呢?通过一个对外提供的方法:iterator();
  • 帮助我们做集合遍历的工具。

为什么要有迭代器?

对于各个集合类,我们总是都知道它的内部结构,访问代码和集合本身是紧密耦合的,无法将访问逻辑从集合类和客户端代码中分离出来。不同的集合会对应不同的遍历方法,客户端代码无法复用。在实际应用中如何将上面两个集合整合是相当麻烦的。所以才有Iterator,它总是用同一种逻辑来遍历集合。使得客户端自身不需要来维护集合的内部结构,所有的内部状态都由Iterator来维护。客户端不用直接和集合进行打交道,而是控制Iterator向它发送向前向后的指令,就可以遍历集合。

作用:

java中提供了很多种集合,它们在存储元素时,采用的存储方式不同。所以当我们要取出这些集合中的元素时,可以通过一种通用的获取方式来完成。

Collection集合元素的通用获取方式: 

在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来;继续再判断,如果还有就再取出来。一直到把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。
 

Iterator接口的常用方法:

修饰语和类型方法描述
booleanhasNext()判断集合中还有没有可以被取出的元素,如果有返回true
Enext()取出集合中的下一个元素

集合和迭代器

 在我们使用迭代器Iterator的时候,同时对集合元素进行操作(操作同一元素),但是迭代器并不知道集合发生变化,会抛出错误。

解决方案:

1.解决并发引起的错误,在迭代的集合元素的时候,不要进行相关的元素操作,只能用迭代器的方法,此方法中没有元素的增加操作

2.用ListIterator方法,可以对元素增删改查

(在迭代时,不可以通过集合对象的方法操作集合中的元素,因为会发生ConcurrentModifycationException异常,所以,在迭代器时,只能用迭代器的方法操作元素,可是Iterator方法是有限的,只能对元素进行判断,取出,删除的操作,如果想要其他的操作如添加,修改等,就需要使用其子接口,ListIterator,该接口只能通过List集合的listIterator方法获取)

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/395493
推荐阅读
相关标签
  

闽ICP备14008679号