集合输出的4种形式:Iterator输出、ListIterator输出、foreach(加强型for循环)输出、Enumeration输出。
迭代输出:Iterator
Iterator(迭代器)是集合输出操作的一个接口,Collection接口中提供了直接为Iterator接口实例化的方法(iterator()),任何集合类型都可以转换为Iterator接口输出。
Iterator接口定义的方法
方法 | 类型 | 描述 |
---|---|---|
public boolean hasNext() |
普通 | 判断是否还有内容 |
public E next() |
普通 | 取出当前内容 |
两个方法在进行输出时的使用方法下图:
Iterator使用范例
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class IteratorTest {
public static void main(String[] args) {
List<String> all = new ArrayList<>(); //实例化List集合
all.add("Gone");
all.add("with");
all.add("the");
all.add("Wind");
Iterator<String> iter = all.iterator(); //使用Collection接口中提供的方法,实例化Iterator接口
while (iter.hasNext()) { //hasNext()判断是否有数据
String str = iter.next(); //next()输出数据
System.out.print(str + " ");
}
}
}
注意:使用Iterator输出数据时,使用集合类的remove()方法会导致程序中断执行,故只能利用Iterator接口提供的remove()方法。
双向迭代:ListIterator
ListIterator属于Iterator的子接口。
ListIterator接口的常用方法
方法 | 类型 | 描述 |
---|---|---|
public boolean hasPrevious() |
普通 | 判断是否有前一个元素 |
public E previous |
普通 | 取出前一个元素 |
public void add(E e) |
普通 | 向集合追加数据 |
public void set(E e) |
普通 | 修改集合数据 |
ListIterator接口对象的实例化可以依靠List接口提供的方法:
public ListIterator<E> listIterator()
。
迭代器的本质就是一个指针的移动操作。
foreach输出
foreach输出集合数据的基本语法如下(以控制台输出为例):
for(Object item : listName){
System.out.println(item);
}
Enumeration输出
Enumeration(枚举输出)接口只用来完成Vector类集合的输出操作。此接口定义如下:
public interface Enumeration<E>{
public boolean hasMoreElements();//判断是否有下一个元素
public E nextElement(); //取出当前元素
}
Enumeration接口对象的实例化只在Vector类中有定义:
public Enumeration<E> elements()