Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中在循环中重用变量的首选方法_Java_Idioms - Fatal编程技术网

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) {
    ...
}