代码1
String ccMailAddresses="abc@co.in,xyz@co.in";
String ccMailAddressArray[]=ccMailAddresses.split(",");
for (int index = 0; index < ccMailAddressArray.length; index++) {
System.out.println(ccMailAddressArray[index]);
}
代码2
String ccMailAddresses="abc@co.in,xy";
for (String ccMailAddress : ccMailAddresses.split(",")){
System.out.println(ccMailAddress );
}
哪种是最佳做法?其中任何一个都有任何表现受到影响吗?
答案 0 :(得分:1)
显然,第二段代码更短并处理更高级别抽象 - 因为它使用for-each循环;而不是那个count-for循环。
从这个意义上讲:code2需要较少的努力让读者掌握正在发生的事情。因此,从这个角度来看,它肯定是“更好”的。比code1。
表现方面,两者之间不应该有任何不同。
答案 1 :(得分:0)
代码几乎完全相同。 Code1中的if语句是无用的。在我看来,这总是如此。
区别在于这两行:
for (int index = 0; index < ccMailAddressArray.length; index++)
此处您的代码将被执行,直到您的索引大于数组的长度。
for (String ccMailAddress : ccMailAddresses.split(","))
此循环中的代码是针对数组中的每个元素执行的。
但请记住结果是一样的!
希望有所帮助!答案 2 :(得分:0)
两个代码之间没有区别:
code1是传统的for循环,code2是为java集合引入的每个循环进行迭代。
答案 3 :(得分:0)
代码1
String ccMailAddresses="abc@co.in,xyz@co.in";
String ccMailAddressArray[]=ccMailAddresses.split(",");
if(ccMailAddressArray!=null){
for (int index = 0; index < ccMailAddressArray.length; index++) {
System.out.println(ccMailAddressArray[index]);
}
}
在此示例中,您对ccMailAddressArray
进行了不必要的检查,因为split()
永远不会返回null
。 for循环在此为您提供index
。这有时是有用的,例如如果你有一个color
数组,每个元素都有一个颜色存储。然后你可以使用color[index]
选择每个元素的颜色并将其绘制到某个地方。现在请注意,这比仅迭代所有项目要复杂一些。因此,只要您需要 index
。
代码2
String ccMailAddresses="abc@co.in,xy";
for (String ccMailAddress : ccMailAddresses.split(",")){
System.out.println(ccMailAddress );
}
在这个例子中,你做的基本相同。您在这里使用的for-each循环对您来说也是一样的。唯一的区别是你在这里没有index
。它只是更短更简单,也更容易阅读。
所以:尽可能使用for-each(Code 2),因为了解你的内容会更简单一些。如果你使用基于索引的for循环(代码1),我假设你想做一些index
,这也意味着可能涉及一些更复杂的事情。
答案 4 :(得分:0)
感谢您回答stackoverflowgigs。
我的问题现在已经解决了!正如我的一位大四学生给我的评论关于代码2的评论是通过在每个循环中反复调用ccMailAddresses.split(",")
来获得性能。