這個(gè)接口是JDK1.5新增的绸硕,JDK1.5 中领跛,將Collection接口的iterator()方法提取到Iterable接口中聲明允蜈。
實(shí)現(xiàn)了該接口的對(duì)象可以作為for(a : aList)遍歷語(yǔ)句的操作對(duì)象鳍怨。
在JDK 8中串结,新增了新功能 forEach哑子、spliterator
這個(gè)接口有三個(gè)方法
iterator:返回一個(gè) Iterator 對(duì)象
forEach:java8新增,一個(gè)默認(rèn)方法肌割,實(shí)現(xiàn)的功能是 遍歷對(duì)象 對(duì)每個(gè)元素執(zhí)行給的的action卧蜓。這個(gè)方法會(huì)按順序?qū)γ總€(gè)元素執(zhí)行給定的action,除非在執(zhí)行的過(guò)程中拋出異常把敞。如果拋出異常弥奸,這個(gè)異常會(huì)傳遞到這個(gè)方法的調(diào)用者中。當(dāng)然如果你在實(shí)現(xiàn)類中奋早,重寫了這個(gè)方法盛霎,具體的實(shí)現(xiàn)邏輯就由你自己決定了
代碼:
default void forEach(Consumer action) {
? ? ? ? Objects.requireNonNull(action);
? ? ? ? for(T t :this) {
? ? ? ? ? ? action.accept(t);
? ? ? ? }
? ? }
spliterator:java8新增,Spliterator是一個(gè)可分割迭代器(splitable iterator)耽装,可以和iterator順序遍歷迭代器一起看愤炸。jdk1.8發(fā)布后,對(duì)于并行處理的能力大大增強(qiáng)掉奄,Spliterator就是為了并行遍歷元素而設(shè)計(jì)的一個(gè)迭代器规个,jdk1.8中的集合框架中的數(shù)據(jù)結(jié)構(gòu)都默認(rèn)實(shí)現(xiàn)了spliterator,后面我們也會(huì)結(jié)合ArrayList中的spliterator()一起解析。