属性別にグループ化された統計を計算しています。この属性 ( String
s として指定) のカテゴリごとに、集計したい値を取得します。
このためには、カテゴリからDescriptiveStatistics
(によって提供されるorg.apache.commons.math.stat.descriptive
) へのマップが必要です。このマップでは、特定のカテゴリについて、対応するカテゴリDescriptiveStatistics
がまだ作成されているかどうかを確認する必要があります。このチェックと新しい の作成はDescriptiveStatistics
、マップで行う必要があります。
私は Apache の をテストしましLazyMap
たが、汎用性がないために Guava の に行き着きましたLoadingCache
。これらの行に沿った何かが私のために働きます:
LoadingCache<String, DescriptiveStatistics> groupedStats =
CacheBuilder.newBuilder()
.build(new CacheLoader<String, DescriptiveStatistics>() {
@Override
public DescriptiveStatistics load(String key) {
return new DescriptiveStatistics();
}
});
「言葉遣いの少ない」解決策はありますか?オブジェクトをインスタンス化するためだけに匿名クラスをスローする必要がないものはありますか?