一、Literator:迭代器
public boolean hasNext();
public E next() ;
Iterator本身是一个接口,要想取得实例化只能依靠Collection接口中的一个操作方法:
public Iterator<E> iterator();
示例代码:
public class MyLiterator {
public static void main(String[] args) {
Set<String> s = new HashSet<String>();
s.add("1");
s.add("2");
s.add("3");
Iterator<String> iter = s.iterator();
while(iter.hasNext()) {
System.out.println(iter.next());
}
}
}
总结:只要是集合的输出,直接使用Iterator
二、双向迭代:ListLterator
右前向后或者由后向前输出,只能够为List子接口输出接口
public boolean hasPrevious();
public E previous();
注:双向输出,必须是有从前到后的输出,才有从后到前的输出
示例代码:
public static void main(String[] args) {
List<String> s = new ArrayList<String>();
s.add("A");
s.add("B");
s.add("C");
ListIterator<String> iter = s.listIterator();
//由前向后输出
while(iter.hasNext()) {
System.out.print(iter.next()+"、");
}
//由后向前输出:
while(iter.hasPrevious()) {
System.out.print(iter.previous()+"、");
}
}
}
三、foreach输出
示例代码:
public class MyLiterator {
public static void main(String[] args) {
List<String> s = new ArrayList<String>();
s.add("A");
s.add("B");
s.add("C");
for(String str:s) {
System.out.println(str);
}
}
}
四、Enumeration输出
定义:
public interface Enumeration<E>
方法:
public boolean hasMoreElements();//判断是否有下一个元素,等同于hasNext()
public E nextElement();//取出当前元素,等同于next()
取得Enumeration接口的实例化对象只能依靠Vector子类,在Vector子类中方法:
public Enumeration<E> elements();
示例代码
public class MyLiterator {
public static void main(String[] args) {
//此时不能使用List<String> s = new Vector<String>();
//因为elements()方法是Vector子类中特有的方法
Vector<String> s = new Vector<String>();
s.add("A");
s.add("B");
s.add("C");
Enumeration<String> enu = s.elements();
while(enu.hasMoreElements()) {
System.out.println(enu.nextElement());
}
}
}
——————————————————————–总结:
集合虽然有四种形式,但是以Iterator与Enumeration输出为主,特别是Iterator