2012-07-24 3 views
0

Trove 맵의 모든 값을 0으로 설정하는 효율적인 방법이 있습니까?Trove 맵의 모든 값을 0으로 설정하는 효율적인 방법이 있습니까?

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); 
    } 

을하지만 그것은 일종의 지저분한 것 같다

는 지금은이 일을하고있다.

답변

1

당신이 transformValues() 대신 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); 
} 

내가 좀 더 효율적인 솔루션 보게 될 것입니다 생각하지 않는다 - 어떤 점에서를, 무언가를 반복한다 모든 값.