哪个版本的循环会更有效率?还是真的不重要?
SortedMap<Float,Float> map = uDataMaster.getMap();
for (int i = 0; i < mzNumbers.length; i++) {
map.put((Float)mzNumbers[i].floatValue(),(Float)intNumbers[i].floatValue());
}
对比
SortedMap<Float,Float> map = uDataMaster.getMap();
for (int i = 0; i < mzNumbers.length; i++) {
map.put( new Float(mzNumbers[i].floatValue()),new Float(intNumbers[i].floatValue()));
}
最佳答案
您的第一个示例仅由于 Java 5 引入的自动装箱而起作用。(但您已经在此处使用其他 Java 5 功能,例如泛型,因此避免这种情况没有任何好处。)除此之外,他们真的应该是一样的。无论如何,编译器很可能在编译时将其转换为 new Float(...)
。
我打算建议 Float.valueOf(...)
,但在内部,这只是调用 new Float(...)
。但是,根据评论中的 Javadoc 和 shakedown 的建议,这应该是首选方法 - 即使当前版本的 Java 实际上并未在其当前实现中进行任何池化。
关于java - 在循环中填充 map 时,转换为 (Float) 还是声明一个新的 Float 更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8410629/