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)
);