這兩個方法都有指向的移動,不同的是,一個返回boolean,一個返回對象:
hasNext():判斷當前元素是否存在,並沒有指向的移動
next():返回當前元素, 並指向下一個元素
請看代碼吧:
LinkedHashMap<String, String> myMap = new LinkedHashMap<String, String>();
myMap .put("0", "0.0");
myMap .put("1", "1.0");
myMap .put("2", "2.0");
Set<String> mySet = myMap.keySet();
int i=0,j=0;
for (Iterator<String> iterator = mySet.iterator(); iterator.hasNext();) {//最后i=3
iterator.hasNext();//此處執行此方法不影響整體的遍歷
i++;
String theOne=iterator.next();
System.out.println(i+"--"+theOne);
}
for (Iterator<String> iterator = mySet.iterator(); iterator.hasNext();) {//最后j=2
j++;
String theOne=iterator.next();
System.out.println(j+"--"+theOne);
iterator.next();//此處執行此方法會影響整體遍歷的執行
}