Java集合详解(三)
Iterator与ListIterator
Iterator迭代器
迭代器的定义:public interface Iterator {}
Iterator:是一个接口,它是集合的迭代器,集合可以通过Iterator遍历集合中的元素!
迭代器的方法:
hasNext() :判断当前迭代器中是否有下一个可以遍历元素,如果存在,则返回true
next() :返回迭代中的下一个元素
remove() : 从底层集合中删除此迭代器返回的最后一个元素
注 意:next()方法不能重复调用,如果重复调用,如果重复调用则会出现NoSuchElementException异常
/*
使用迭代器遍历集合
*/
import java.util.ArrayList;
import java.util.Iterator;
public class ArrayLlistDemo {
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add("hello");
list.add("java");
list.add("world");
//使用迭代器遍历集合
Iterator it = list.iterator();
//判断当前是否存在存在下一个元素
while(it.hasNext()) {
Object next = it.next();
System.out.println(next);
}
}
}
ListIterator列表迭代器
ListIterator:列表迭代器,ListIterator继承于Iterator接口,允许双向遍历和修改元素
ListIterator listIterator():List集合的专有遍历方式 :列表迭代器
正向遍历:
boolean hasNext():判断是否有下一个元素
Object next() :获取下一个元素
逆向遍历
boolean hasPrevious():判断是否有上一个元素
Object previous():获取前一个元素
注意:逆向遍历前先必须进行正向遍历!
import java.util.ArrayList;
import java.util.ListIterator;
/*
* 使用ListIterator遍历集合,
* */
public class ListIteratorDemo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
ListIterator<String> lit = list.listIterator();
//使用ListIterator遍历集合
//正序遍历,从前向后
while(lit.hasNext()) {
String next = lit.next();
System.out.println(next);
}
System.out.println("----------------");
//逆序遍历,从后向前
while(lit.hasPrevious()) {
String previous = lit.previous();
System.out.println(previous);
}
}
}
迭代器的注意事项:
1)Object next()获取当前集合的元素(),不能使用多次,使用一次即可,获取所有元素信息
2)能使用for循环,不推荐(因为以后集合中元素可能不知道个数,使用while循环)