Java中在循环中重用变量的首选方法
以下哪种是重用Java中在循环中重用变量的首选方法,java,idioms,Java,Idioms,以下哪种是重用部分向量的首选方法 Iterator<Vector> outputIter = parsedOutput.iterator(); while(outputIter.hasNext()) { Vector section = outputIter.next(); } 如果不在循环外部使用部分,则首选第一种样式 我更喜欢第二个版本,因为循环完成后,您的作用域中没有未使用的变量 但是呢? for (Vector section: parsedOutput) {
部分
向量的首选方法
Iterator<Vector> outputIter = parsedOutput.iterator();
while(outputIter.hasNext()) {
Vector section = outputIter.next();
}
如果不在循环外部使用
部分
,则首选第一种样式 我更喜欢第二个版本,因为循环完成后,您的作用域中没有未使用的变量
但是呢?
for (Vector section: parsedOutput) {
...
}
?凭直觉,我会选择您的解决方案的第二种变体。但最后,这在很大程度上取决于优化程序,它可能会改变您的代码。试着编译代码,然后查看生成的字节码,看看发生了什么。您可以使用javap查看生成的内容或任何其他可用的反编译器
最后,即使这样,代码也可能在运行时以另一种方式进行优化 第二种方式意味着变量
部分
在循环外部可见。如果您没有在循环之外使用它,那么就没有必要这样做,所以使用第一个选项。就性能而言,应该没有任何明显的差异。另一件事:很有可能您应该使用ArrayList而不是Vector。向量是同步的-从多个线程修改是安全的,但是如果你不这样做,那么同步只会增加开销。这将在将来记住。谢谢。是的,Vector
是一种非常古老的语法,在90年代后期很常见。我从未见过这种语法。你能提供它的文档链接吗?@Alex,这是一个名为“增强for循环”的链接,是在Java5中引入的。
for (Vector section: parsedOutput) {
...
}