其实,这是个很小的知识点,但的确能解决很多问题,我相信对刚出来的一些新手,基本都有个毛病,能做出来东西,但没嚼碎,当然,我也一样,所以现在一有时间,我就想想自己不是很了解的小知识点,然后慢慢补起来。那什么叫了解了,其实最起码,你能背着敲出来啥,不要每次想写这样的功能时,那样的功能时,就又是百度。
下面我们就来讲讲迭代器,其实很简单的啦:
(1) 使用方法iterator()要求容器返回一个Iterator。第一次调
Iterator的next()方法时,它返回序列的第一个元素。
注意:iterator()方法是java.lang.Iterable接口,被Collection继承。
(2) 使用next()获得序列中的下一个元素。
(3) 使用hasNext()检查序列中是否还有元素。
(4) 使用remove()将迭代器新返回的元素删除。
public class main {
/**
* @param args
*/
public static void main(String[] args) {
///集合类 迭代器//
//例子一
List<String> stringSList = new ArrayList<String>();
stringSList.add("lihuan");
stringSList.add("love");
stringSList.add("money");
Iterator<String> iterator = stringSList.iterator();
while (iterator.hasNext()) {
String str = (String) iterator.next();
if (str.equals("love")) {
iterator.remove();
}
}
for (String str : stringSList) {
System.out.println(str);
}
//例子二
Map<Object, String> hashMap = new HashMap<Object, String>();
hashMap.put("1", "I");
hashMap.put("2", "Love");
hashMap.put("3", "you");
hashMap.put("4", "forever");
// hashMap.keySet():获得所有键值
Set<Object> set = hashMap.keySet();
Iterator<Object> iterator2 = set.iterator();
while (iterator2.hasNext()) {
System.out.println(hashMap.get(iterator2.next()));
}
//获得所有键值和值
Set<Map.Entry<Object, String>> entries=hashMap.entrySet();
for(Map.Entry<Object, String> entry : entries){
System.out.println(entry.getKey()+":"+entry.getValue());
}
}
}