java中Iterator迭代器

什么是迭代器?

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);
	}
}

猜你喜欢

转载自blog.csdn.net/qq_42676052/article/details/81711633