首页 > 解决方案 > Java 优化:将 map.size() 存储在变量中

问题描述

在我的程序(贝叶斯分类器)中,我对该map.size()方法进行了很多调用。

map.size()我想知道是否可以通过将 的值存储在局部变量(或字段)中来优化程序的性能。

如果是这样,将它存储在变量中的正确方法是什么?

int mapSize = map.size();

在表面之下,这可能只会创建一个指向方法的指针(?)

标签: javaoptimization

解决方案


您的问题中提供的以下代码不会存储指向该方法的指针,它存储该方法返回的值。

int mapSize = map.size();

查看该HashMap.size();方法,您可以看到它只返回一个局部变量,这导致它已经非常快了:

/**
 * Returns the number of key-value mappings in this map.
 *
 * @return the number of key-value mappings in this map
 */
public int size() {
    return size;
}

推荐阅读