Java 有没有一种有效的方法将Trove映射中的所有值设置为零?

Java 有没有一种有效的方法将Trove映射中的所有值设置为零?,java,trove4j,Java,Trove4j,有没有一种有效的方法将Trove映射中的所有值设置为零 现在,我正在这样做: public static class NcZeroD implements TDoubleProcedure{ public TDoubleDoubleHashMap map; @Override public boolean execute(double k) { map.put(k, 0); return t

有没有一种有效的方法将Trove映射中的所有值设置为零

现在,我正在这样做:

    public static class NcZeroD implements TDoubleProcedure{
        public TDoubleDoubleHashMap map;

        @Override
        public boolean execute(double k) {
            map.put(k, 0);
            return true;
        }   
    }

    static NcZeroD ncZeroD=new NcZeroD();   

    public static void zero(TDoubleDoubleHashMap map){
        ncZeroD.map=map;
        map.forEachKey(ncZeroD);
    }

但是它看起来有点凌乱。

如果你用forEachKey()代替
forEachKey(),它至少会更干净一点。

我不认为你会看到一个更有效的解决方案-在某一点上,必须对所有的值进行迭代

private static final TDoubleFunction TO_ZERO = new TDoubleFunction() {
    @Override
    public double execute(double value) {
        return 0;
    }
};

public static void zero(TDoubleDoubleHashMap map) {
    map.transformValues(TO_ZERO);
}