Interable与Iterator区别
结论:
Interable里实现了iterator方法,所以如果类里面继承了iterator接口,那么直接用就好了,如果类里面没有iterator方法,那么需要自己创建一个Interable接口,接口实现iterator方法(此方法不是抽象的而是default的,所以可以使用)
interface Calculate {
ArrayList list = new ArrayList<>();
Map map = new HashMap<>();
//抽象方法,省略了public static abstract
void add();
//实例方法,jdk1.8新特性
default void divide(Iterable iterable) {
iterable.iterator().next();
}
//因为Arraylist里定义了iterator方法,且在方法返回为继承iterator接口的对象
Iterator iterator1 = list.iterator();
//Map没有定义,entrySet定义了
Iterator iterator2 = map.entrySet().iterator();
}