Iterator和foreach
各位大神,小弟初学JAVA最近在学习集合的时候对于Iterator和foreach遍历集合有一些想法,希望大神们指点一下。Iterator 迭代器 是接口 可通过Iterator 引用指向实现了Iterator接口的具体类的对象,即通过多态降低了系统的耦合度 。
主要方法:
boolean hasNext()  E
next() 
          返回迭代的下一个元素。
 void remove() 
          从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。遍历过程:
        通过hasNext()从集合的第一个位置前面开始遍历,确认是否有下一个数据,如果有则返回true 并且可调用next()方法,则返回该数据。
优点:
        如果是顺序访问时Iterator效率较高,试用于List集合。
缺点:
遍历Map集合,由于Map集合中的数据是成对出现<key,value>的,在遍历key同时, 调用get(key)时会出现oSuchElementException,是因为Iterator遍历不是从第一个元素开始和最后一个元素结束的,所以在遍历是会出现问题,所以Iterator不适合遍历Map集合。
======================================分割线====================================================
For(<T>: collection<T>)each 其底层实现原理是就是Iterator
即:如果一个类实现了Iterable<T>接口,该类对象的集合就可以使用foreach语句进行遍历 。
遍历过程:
       从集合中逐一的取出元素  进行操作
优点:
       试用于全部集合。
       在遍历Map集合中的key的同时调用get(key) 不会出现异常。