使用iterator出現的死迴圈

2022-05-20 15:22:38 字數 462 閱讀 3722

1

public

static

void

main(string args)216

17if(((string)it.next()).equals("yaoyuan"))21}

22for

(string string : list)

2326 }

在以上**中,若臨時變數s為空的話,則會進入死迴圈。

這是由於沒有正確的理解continue的用法,continue會結束其後跟隨的語句而直接開始下一次的迴圈,在這裡s為空,則直接進行下一次迴圈,沒有執行到it.next(),所有iterator的序列值沒有發生變化,hasnext永遠都是真,進入死迴圈。

另外,在對集合做遍歷操作的時候不允許有插入或者刪除操作,否則會拋異常。若要刪除可以使用iterator的remove方法,也可以在元素中做乙個標記,迴圈結束後再做操作。

20140213 想念是while裡的死迴圈

stdafx.h 標準系統包含檔案的包含檔案,或是經常使用但不常更改的 特定於專案的包含檔案 pragma once include targetver.h include include include include define 我還記得 void define 在東校 main define...

幾種循壞的使用

而且我們都知道幾種迴圈語句可以相互轉化。對於do while 條件 它 是先執行然後再進行判斷 對於while 條件 先進行判斷然後再執行循壞體內的語句 for循壞 for 表示式1 表示式2 表示式3 這裡我們需要知道for中的執行順序 表示式1 表達2 語句 表示式三 其中這裡開始循壞知道條件為...

迭代器的使用Iterator

對迭代的認識 迭代模式是訪問集合類的通用方法,只要集合類實現了iterator介面,就可以用迭代的方式來訪問集合類內部的資料 目的 使得不用暴露集合內部的結構而達到迴圈遍歷集合的效果 如果不使用迭代器就直接用迴圈來遍歷,如 迭代器的初始化方式 迭代器介面中常用的方法 1.hasnext 該方法英語判...