java - 在循环中填充 map 时,转换为 (Float) 还是声明一个新的 Float 更好?

标签 java

哪个版本的循环会更有效率?还是真的不重要?

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/

相关文章:

java - Spark Datastax Java API 选择语句

java - 多次使用准备好的语句是否资源安全?

java - 我的应用程序可以反编译以显示字符串常量吗?

java - 一般情况下如何将 jar 文件附加到 Eclipse 中的源文件?

java - 如何从 JSP 中的 URL 检索 jsessionid?

JavaFX : Use a Thread more than once

java - 为什么我的 Spring MVC 项目会出现 404 错误?

java - 获取 JFrame 中 JTextField 的坐标

java - 如何在 android Libgdx 中设置纵向主屏幕和横向其他屏幕?

java - 舍入函数提供不同的值