简介 迭代器是遍历容器的一种常用方法,它屏蔽了容器的实现细节,无需暴露数据结构内部,就可以对容器进行遍历,迭代器本身也是一种设计模式,迭代是一种特殊的遍历方式. Iterator 在java中,迭代器接口Iterator定义了三种方法 public interface Iterator<E> { // 是否还有元素可以迭代,如果有 返回true 没有返回false boolean hasNext(); // 返回迭代的下一个元素 E next(); // 从迭代器指向的 collection…
一:ArraryList  最终继承超级接口Collection,Colection接口继承Iterator接口. public interface Collection<E> extends Iterable<E> 而Iterator只有一个方法: Iterator<T> iterator() 在ArraryList实现类中有对方法的重写,返回当前实现类的迭代器对象(Returns an iterator over a set of elements of type…
Iterable: public interface Iterable<T> { Iterator<T> iterator(); } 上面是Iterable源码,只有一个iterator(),所以Iterable接口只是用来返回一个新的迭代器,意味着这个集合支持迭代 Collection是list和set的父接口,而Collection实现了Iterable,所以list和set都可以使用迭代器 Iterator: public interface Iterator<E>…
Iterable接口是java 集合框架的顶级接口,实现此接口使集合对象可以通过迭代器遍历自身元素,我们可以看下它的成员方法 修饰符和返回值 方法名 描述 Iterator<T> iterator() 返回一个内部元素为T类型的迭代器 default void forEach(Consumer<? super T> action) 对内部元素进行遍历,并对元素进行指定的操作 default Spliterator<T> spliterator() 创建并返回一个可分割迭…
一.Java中有一个设计模式是迭代器模式 1.迭代器模式定义迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示. 2.迭代器模式概述Java集合框架的集合类,我们有时候称之为容器.容器的种类有很多种,比如ArrayList.LinkedList.HashSet...,每种容器都有自己的特点,ArrayList底层维护的是一个数组:LinkedList是链表:HashSet依赖的是哈希表,每种容器都有自己特有的数据结构.因为容器的内部结构不同,…
迭代器模式:就是提供一种方法对一个容器对象中的各个元素进行访问,而又不暴露该对象容器的内部细节. 什么是迭代器Iterator? Java集合框架的集合类,我们有时候称之为容器.容器的种类有很多种,比如ArrayList.LinkedList.HashSet...,每种容器都有自己的特点,ArrayList底层维护的是一个数组:LinkedList是链表结构的:HashSet依赖的是哈希表,每种容器都有自己特有的数据结构. 因为容器的内部结构不同,很多时候可能不知道该怎样去遍历一个容器中的元素.…
类图 /** * 自己定义集合接口, 相似java.util.Collection * 用于数据存储 * @author stone * */ public interface ICollection<T> { IIterator<T> iterator(); //返回迭代器 void add(T t); T get(int index); } /** * 自己定义迭代器接口 相似于java.util.Iterator * 用于遍历集合类ICollection的数据 * @auth…
01集合使用的回顾 A:集合使用的回顾 a.ArrayList集合存储5个int类型元素 public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<Integer>(); list.add(111); list.add(222); list.add(333); list.add(444); list.add(555); for(int i=0; i<list.size();…
集合 集合,集合是java中提供的一种容器,可以用来存储多个数据. 数组的长度是固定的.集合的长度是可变的.集合中存储的元素必须是引用类型数据 1.1      ArrayList集合存储元素 package com.oracle.List; import java.util.List; import java.util.ArrayList; import java.util.Iterator; public class Demo01 { public static void main(Stri…
Java集合类中Map接口下的相关类并没有像Collection接口的相关类一样实现get()方法,因此在要实现遍历输出的场景中没法直接用get()方法来取得对象中的数据,但Java本身提供了另一种遍历数据的方法,即用Iterator迭代器,虽然Iterator可以用来遍历读取数据,但它本质上不是一种方法,它只是一种设计模式,它是一个对象,一个"轻量级"的对象.下文讲讲Iterator在不同接口中的使用方法: (一)Iterator在Collection接口中的使用. 虽然Collec…