这两个方法都有指向的移动,不同的是,一个返回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();//此处执行此方法会影响整体遍历的执行
}