List集合五种遍历方式
1、Iterator接口 —— java集合中一员
(1)包:java.util.Iterator
(2)功能:主要用于迭代访问(遍历)Collection
中的元素
Iterator
对象称为迭代器
(3)方法:
public E next():
返回迭代的下一个元素。
public boolean hasNext():
如果仍有元素可以迭代,则返回true
2、普通for循环遍历(类似于数组遍历)
3、增强for
增强for
循环(也称for each
循环)是JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合的。
它的内部原理其实是个Iterator
迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。
4、List集合自有迭代器
List
集合额外提供了一个 listIterator()
方法,该方法返回一个 ListIterator
对象, ListIterator
接口继承了 Iterator接口
ListIterator<E> listIterator(int index)
返回列表中元素的列表迭代器(按适当顺序),从列表的指定位置开始。指定的索引表示 next
的初始调用所返回的第一个元素。previous
方法的初始调用将返回索引比指定索引少 1 的元素。
参数index-
- 从列表迭代器返回的第一个元素的索引(通过调用 next 方法)
5、Lambda
Lambda表达式是
Java SE 8中一个重要的新特性。
lambda表达式允许你通过表达式来代替功能接口。
lambda`表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。
格式:
(parameters) -> expression
或(parameters) ->{ statements; }
//使用多态方式创建对象
List<String> list = new ArrayList<>();
//添加元素到集合
list.add("派大星");
list.add("海绵宝宝");
list.add("章鱼哥");
list.add("蟹老板");
//输出集合看一下
System.out.println(list);
//1、使用Iterator接口遍历
Iterator<String> it = list.iterator();
while(it.hasNext()){//判断是否有迭代元素
System.out.println(it.next());//输出迭代出的元素
}
System.out.println("=============================");
//2、普通for循环遍历
for(int i = 0; i < list.size(); i++){
//通过get方法传递索引获取集合元素
System.out.println(list.get(i));
}
System.out.println("=============================");
//3、增强for
for(String a : list){
System.out.println(a);
}
System.out.println("=============================");
//4、List集合自带迭代器
ListIterator<String> listli = list.listIterator();
while(listli.hasNext()){
System.out.println(listli.next());
}
System.out.println("=============================");
//5、Lambda
list.forEach(
item -> System.out.println(item)
);