什么是迭代器?
Iterator接口提供了很多对集合元素进行迭代的方法。每一个集合类都包括了可以返回迭代器实例的迭代方法。迭代器可以在迭代过程中删除底层集合的元素,但是不可以直接调用集合的remove(Object obj)删除,可以通过迭代器的remove()方法删除
迭代器的简单使用方法:
package day8_15;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.function.Consumer;
public class TestListIterator {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("aa");
list.add("bb");
list.add("cc");
//1.基本for只能list
for(int i=0;i<list.size();i++) {
System.out.println(list.get(i));
}
//2.增强for
for(String n:list) {
System.out.println(n);
}
//3.集合的方法(简单)
list.forEach(new Consumer<String>() {
//t集合元素
@Override
public void accept(String t) {
System.out.println(t);
}
});
//4.lambda表达式
list.forEach(t->System.out.println(t));
list.forEach(System.out::println);
System.out.println("-------------");
//Iterator
Iterator<String> i = list.iterator();
/*System.out.println(i.next());
System.out.println(i.next());
i.remove();//删除最近一次next的元素
System.out.println(list);*/
/*while(i.hasNext()) {
System.out.println(i.next());
//list.add("hello");//不能并发操作
}*/
//5.Iterator遍历的方法
// i.forEachRemaining(System.out::println);
//6.ListIterator(针对List)
ListIterator<String> li = list.listIterator();
while(li.hasNext()) {
System.out.println(li.next());
li.add("hello");
}
System.out.println("----------");
//向上迭代
while(li.hasPrevious()) {
System.out.println(li.previous());
}
System.out.println("------");
//7.
list.stream().forEach(System.out::println);
}
}