1、集合输出
遍历集合的方式有以下几种:
1、Iterator
2、ListIterator
3、Enumeration
4、foreach
其中Iterator使用率最高,在jdk1.5后新增的foreach也被大量使用
import java.util.ArrayList;
import java.util.Collection;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;
public class IteratorDemo {
public static void main(String[] args) {
Cat c1 = new Cat("喵喵",3,2);
Cat c2 = new Cat("花花",4,1);
Cat c3 = new Cat("楠楠",5,4);
Cat c4 = new Cat("喵喵",3,2);
List<Cat> sets = new ArrayList<>();
sets.add(c1);
sets.add(c2);
sets.add(c3);
sets.add(c4);
//iterator1(sets);
//iterator(sets);
//enumeration();
foreach();
}
//foreache迭代(1.5之后)
public static void iterator1(Collection<Cat> c) { //参数是:Collection采集器即集合的总接口,可以代表任何List或Set接口的实现类
for(Cat cats:c) {
System.out.println(cats);
}
}
//Iterator迭代(1.5之前统一的对数组迭代的方式)
public static void iterator(Collection<Cat> c) {
Iterator ite = c.iterator();
while(ite.hasNext()) {
System.out.println(ite.next());
}
}
//enumeration方式迭代,通常对Vector对象的数组进行迭代
public static void enumeration() {
Vector<String> ve = new Vector<>();
ve.add("Lily");
ve.add("Jerry");
ve.add("Tom");
ve.add("Bob");
Enumeration en=ve.elements();
while(en.hasMoreElements()) {
System.out.println(en.nextElement());
}
}
//jdk1.8之后新增特性Consumer接口实现迭代,forEach()方法
public static void foreach() {
List<String> list = new ArrayList<>();
list.add("Lily");
list.add("Jerry");
list.add("Tom");
list.add("Bob");
//Consumer接口:因为consume接口只有一个抽象方法,void accept(T t)抽象方法需要传入一个参数; 因此可以用
lambda表达式的方式实现该接口
//forEach()方法里又传入的是Consumer接口;所以可以变量的传入一个lambda表达式来具体实现
//no.1:lambda参数的类型是和list的类型一致的
list.forEach((String s)->{System.out.println(s);});
//no.2
list.forEach(s->System.out.println(s));
//no.3:参数可以省略如下格式:
list.forEach(System.out::println);
}
}