我们如何计算程序调用put()和get()函数的次数?

时间:2013-11-17 04:09:52

标签: java

假设我们在程序中使用了一个map,我们如何计算程序调用put()和get()函数的次数? 。 如果我们创建了多个地图实例怎么办?你如何总结每个地图对象的总数?实际上,一位朋友告诉我,他在他的求职面试中得到了这个问题。我找到了解决方案,但我没有清楚地知道。

2 个答案:

答案 0 :(得分:2)

如果您只想添加对类中方法的调用,请使用static字段:

public class Map ... {
    private static int count = 0;

    public ... get(...) {
        count++;
        ...
    }

    public void put(...) {
        count++;
        ...
    }

    public static int getCount() {
        return count;
    }
}

答案 1 :(得分:1)

这是一种方法,假设程序可以使用Map的子类而不是标准的Java Map:

public class MyMap<K, V> extends Map<K, V> {
    int getCount = 0;

     @override
     public V get(K key) {
          getCount++;
          return super.get(key);
     }

     public getGetCount() {
         return getCount;
     }
}

值得注意的是,模拟框架解决了类似的问题(尽管这个特殊问题只是他们做的一件小事)。例如,Mockito生成类/接口的模拟版本,用于计算每个方法的调用次数。除非你实现一些存根行为,否则模拟本身不会立即可用。或者,如果你使用类似于继承的mockito,spy,可能是实现此行为的最快方法。有关详细信息,请参阅https://code.google.com/p/mockito/