1. 程式人生 > 其它 >uwsgi+django部署的webserver應用日誌缺失問題

uwsgi+django部署的webserver應用日誌缺失問題

1. Iterator介面

java.util.Iterator介面作用:遍歷集合中的所有元素。

Iterator和Collection、Map介面有所不同:

Iterator主要用於迭代訪問(即遍歷)Collection中的元素,因此Iterator物件也被成為迭代器。

CollectionMap介面主要用於儲存元素。

獲取迭代器的方法:

public Iterator iterator()   // 獲取集合對應的迭代器,用來遍歷集合中的元素

迭代的概念:

迭代:即Collection集合元素的通用獲取方式。在取元素之前先要判斷集合中有沒有元素,如果有,就把這個元素取出來,繼續再判斷,如果還有就再取出來。一直把集合中的所有元素全部取出。這種取出方式專業術語稱為迭代。

Iterator介面的常用方法如下:

1 public E next()                 // 返回迭代的下一個元素
2 public boolean hasNext()        // 如果仍有元素可以迭代,則返回true

程式碼例項

 1 public class Demo06 {
 2     public static void main(String[] args){
 3         Collection coll = new ArrayList();
 4 
 5         coll.add("小明");
 6         coll.add("小紅");
7 coll.add("小剛"); 8 System.out.println(coll); 9 10 Iterator it = coll.iterator(); 11 if(it.hasNext()){ 12 for(int i=0; i<coll.size(); i++){ 13 System.out.print(it.next() + " "); 14 } 15 } 16 } 17 }

/*
tips::在進行集合元素取出時,如果集合中已經沒有元素了,還繼續使用迭代器的next方法,將會發生java.util.NoSuchElementException沒有集合元素的錯誤。
*/

執行結果

[小明, 小紅, 小剛]
小明 小紅 小剛 

2. 迭代器的實現原理

我們在之前案例已經完成了Iterator遍歷集合的整個過程。當遍歷集合時,首先通過呼叫集合的iterator()方法獲得迭代器物件,然後使用hashNext()方法判斷集合中是否存在下一個元素,如果存在,則呼叫next()方法將元素取出,否則說明已到達了集合末尾,停止遍歷元素。

Iterator迭代器物件在遍歷集合時,內部採用指標的方式來跟蹤集合中的元素,為了讓初學者能更好地理解迭代器的工作原理,接下來通過一個圖例來演示Iterator物件迭代元素的過程:

在呼叫Iterator的next方法之前,迭代器的索引位於第一個元素之前,指向第一個元素,當第一次呼叫迭代器的next方法時,返回第一個元素,然後迭代器的索引會向後移動一位,指向第二個元素,當再次呼叫next方法時,返回第二個元素,然後迭代器的索引會再向後移動一位,指向第三個元素,依此類推,直到hasNext方法返回false,表示到達了集合的末尾,終止對元素的遍歷。

3.使用Iterator迭代器刪除元素

java.util.Iterator迭代器中有一個方法:

void remove();

注意:Collection的remove方法,無法根據條件刪除。

【例】刪除一下集合元素中的偶數