关于集合中的知识可能对于大部分人而言都耳熟能详了,但是对于一部分人而言,对于集合为什么又迭代器Iterator可能一时半会还说不出个所以然来。对于迭代器而言,它是一种设计模式,设计模式存在的意义就是为了简化代码以及提高效率。
什么是迭代器?
在jdk的定义中,Iterator是一个接口。他提供了如下方法:
- 提供了一个boolean返回值的方法,该方法定义的是下一个值是否还有值,使用迭代器的基本方法就是通过该方法判断下个值是否还有值然后进行迭代获取值。
- 提供了一个从集合中移除元素的方法,remove()。使用该方法可以很好的移除集合中的元素,这是普通迭代方法所不能实现的。
- 还提供了一个next()方法,这个方法是用于访问当前元素的下个元素可以发现这个方法的返回值是泛型,那么我们可以从中得知这个迭代器可以适用于任何类型的集合。
boolean hasNext();
/**
* Returns the next element in the iteration.
*
* @return the next element in the iteration
* @throws NoSuchElementException if the iteration has no more elements
*/
E next();
default void remove() {
throw new UnsupportedOperationException("remove");
}
普通方法遍历集合
使用普通for循环或者增强for循环迭代集合代码如下:
List<Integer> list = new ArrayList<>()