迭代器Iterator
- 迭代器:用来遍历集合用的,把集合的数据一个一个取出来.
- 单词 \:iterate迭代 iterator迭代器
1. 获取集合的迭代器对象 iterator()方法
- iterator(): 返回此集合中元素的迭代器,通过集合对象的iterator()方法得到
- 一个新的迭代器对象,在一开始会默认指向集合中第0个数据
2. 迭代器遍历集合用到的方法
- hasNext()方法 可以判断当前迭代器指向的集合的位置是否有数据
- next()方法 取出当前位置的元素 , 并且 将迭代器移动到下一个数据的位置
代码
Collection ll = new ArrayList<>();
ll.add("aaa");
ll.add("bbb");
ll.add("cc");
ll.add("dddd");
ll.add("eee");
//获取集合的迭代器 对象 ,一开始默认指向第0个元素
Iterator it = ll.iterator();
//next: 1获取当前指向的数据 ,2然后指向下一个数据
//String s01 = it.next();
//System.out.println(s01);
//System.out.println(it.next());
//System.out.println(it.next());
//System.out.println(it.next());
//System.out.println(it.next());
//System.out.println(it.next());
//判断指向的数据是否存在
//if (it.hasNext()) {
// System.out.println(it.next());
//}
while (it.hasNext()){
System.out.println(it.next());
}
3. 迭代器循环中删除
- remove: 会删除 迭代器调用next返回的数据
代码
//创建集合 多态的形式
ArrayList list = new ArrayList<>();
list.add("aa");
list.add("bb");
list.add("aa");
list.add("aa");
list.add("ee");
list.add("xx");
list.add("aa");
list.add("aa");
list.add("yy");
// 1 获取迭代器对象
Iterator it = list.iterator();
// 2 循环获取数据
while (it.hasNext()) {
String str = it.next();
//3判断str是不是aa
if ("aa".equals(str)) {
it.remove();
}
}
System.out.println(list);
原理图

总结
- itrator()
- hasNext next remove
- 从开始一个一个的向后获取数据,如果要从头获取 就必须重新获取迭代器对象
Comments NOTHING