[英]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.