迭代输出:Iterator(核心):
接口定义:
public interface Iterator<E>{
public boolean hasNext();
public E next();
}
实例化方法:public Iterator<E>iterator();
范例:使用Iterator输出集合
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class Demo {
public static void main(String[] args) throws Exception {
Set<String> all = new HashSet<>();
all.add("张三");
all.add("李四");
all.add("王五");
Iterator<String> iter = all.iterator();
while (iter.hasNext()) {
System.out.println(iter.next());
}
}
}
============分割线============
双向迭代:ListIterator(了解)
Iterator的子接口——ListIterator接口,在这个接口里面有两个主要方法:
·判断是否有前一个元素:public boolean hasPrevious();
·取得前一个元素:public E previous()。
范例:完成双向迭代
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class Demo {
public static void main(String[] args) {
List<String> all = new ArrayList<>();
all.add("Hello");
all.add("World!");
all.add("Java");
System.out.println("由前向后输出:");
ListIterator<String> iter = all.listIterator();
while (iter.hasNext()) {
String str = iter.next();
System.out.print(str + "、");
}
System.out.println("\n由后向前输出");
while (iter.hasPrevious()) {
String str = iter.previous();
System.out.print(str + "、");
}
}
}
============分割线============
foreach输出
范例:
import java.util.ArrayList;
import java.util.List;
public class Demo {
public static void main(String[] args) {
List<String> all = new ArrayList<>();
all.add("Hello");
all.add("World!");
all.add("Java");
for (String str : all) {
System.out.println(str);
}
}
}
============分割线============
Enumeration输出
此接口定义如下:
public interface Enumeration<E>{
public boolean hasMoreElements();
public E nextElement();
}
接口实例化只能依靠Vector子类。在Vector子类里面定义有如下操作方法:
·取得Enumeration对象:public Enumeration<E>elements();
范例:
import java.util.Enumeration;
import java.util.Vector;
public class Demo {
public static void main(String[] args) {
Vector<String> all = new Vector<>();
all.add("Hello");
all.add("World!");
all.add("Java");
Enumeration<String> enu = all.elements();
while (enu.hasMoreElements()) {
String str = enu.nextElement();
System.out.println(str);
}
}
}