[英]Java: Impact of using 'if' instead of while loop during an iteration
我有這樣的代碼
Enumeration parameterEnum = request.getParameterNames()
while(parameterEnum.hasMoreElements()){}
如果我將它從while語句更改為if語句,有什么區別?
如果您將其更改為if
它要么執行一次或者根本沒有-一個while
聲明將無限期執行,直到ParameterEnum.hasMoreElements()
返回false。
如果我理解您的要求,則當前代碼將繼續運行括號中的內容,直到沒有元素為止。 假定括號中的內容已刪除。 如上面的字面所示,它是一個無限循環,永遠不會結束。
如果將while
轉換為if
,則括號中的內容將只運行一次。
如果Request.getParameterNames()
返回一個“空”值,那么這兩種情況都不會做任何事情。
如果會更快很多!!! 它的復雜度為O(1)
, 而的復雜度為O(1)
O(N)
!!!
因此,輸入越大,使用if代替一陣子 ;-)效果越好。
您可能正在考慮for
語句,而不是if
。
if(ParameterEnum.hasMoreElements()) {}
if
只會運行一次
while(ParameterEnum.hasMoreElements()) {}
除非您增加enum
,否則while
將連續運行。
另一個選項是for
:
for(Enumeration paramEnum = Request.getParameterNames();
parameEnum.hasMoreElements();) {}
這與while
相似,只要hasMoreElements()
方法返回true, hasMoreElements()
可以運行,因此用nextElement()
遞增枚舉很重要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.