一、迭代器的概念 点击此处返回总目录 二、Iterator接口 三、Iterator的实现过程 四、增强的for循环 一、迭代器(Iterator)介绍 在java里面有一个接口:Iterator。 java里面有很多集合,每种集合元素存储的方式不一样,取的方式可能也不一样。每一个都学习怎么获取很不现实,这时候就出现了迭代器,把所有的集合都搞成同样的方式获取。迭代器的好处就是,屏蔽掉了各种集合的不同。 Collection集合元素的通用获取方式:取元素之前首先判断集合中有没有元素,如果有,就把元素取出来,如果还有,就继续取出,直到取完。这种取出方式的专业术语就叫迭代。(说白了,就是遍历) 迭代器:获取集合中元素的一种方式。 二、Iterator接口 共有三个抽象方法,我们学习两个: 1. boolean hasNext() //如果仍有元素可以迭代,则返回 true。 2. E next() //获取下一个元素。 因为Iterator是接口,所以应该找他的实现类。 接口Colletion中的iterator()方法,返回的就是在此 collection 的元素上进行迭代的迭代器。 ArrayList是Collection的实现类,重写了iterator对象,返回的是Iterator接口的实现类的对象。 所以通过ArrayList的对象调用iterator()方法,方法的运行结果就是Iterator接口的实现类的对象。可以通过多态的方式接收一下。 这就是面向接口的编程。 例1:Iterator的使用
例2:Collection<String>中的<String>可以不写,这时集合什么都可以存。如果不写,Iterator<String>中的<String>也不能写。 //Person.java
//Test.java
运行结果: aaa 三、Iterator的实现过程 当执行coll.iterator();时,会创建一个指针,指向-1的位置。 当执行it.hasNext()时,会判断指针指的位置有没有下一个元素。 当执行it.next()时,首先把下一个元素取出来,然后指针往后移动一位。只有执行next()时,指针才往后移动。
增强的for循环是jdk1.5新特性。 jdk1.5之后,出现了新的接口java.lang.Iterable,Collection开始继承Iterable。而Iterable接口出现目的就是为了实现增强的for循环。 凡是见到的集合,还有数组,都可以使用增强for循环。 格式: for(数据类型 变量名: 数组或集合){ sop(变量); } 好处:代码少 坏处:只能做遍历用。没有索引,不能操作容器里面的数。 例1:增强for循环使用
|
Iterator(迭代器)、增强for循环
猜你喜欢
转载自blog.csdn.net/pengchengliu/article/details/81783866
今日推荐
周排行