哪个版本的循环效率会更高?还是真的没关系?
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()));
}
答案 0 :(得分:1)
你的第一个例子只能用于Java 5引入的自动装箱。(但你已经在这里使用其他Java 5功能,比如泛型,所以避免这种情况没有任何好处。)除此之外,他们真的应该是一样的。无论如何,编译器很可能在编译时将其转换为new Float(...)
。
我打算建议Float.valueOf(...)
,但在内部,这只是调用new Float(...)
。但是,根据评论中的Javadoc和shakedown的建议,这应该是首选方法 - 即使当前版本的Java实际上没有在其当前实现中进行任何池化。