this.stdDevWeighted = stdDevWeighted == Weighting.WEIGHTED;
this.compactAverages = compactAverages;
this.maxEntries = maxEntries;
this.averageDiffs = new FastByIDMap<FastByIDMap<RunningAverage>>();
this.averageItemPref = new FastByIDMap<RunningAverage>();
this.buildAverageDiffsLock = new ReentrantReadWriteLock();
this.allRecommendableItemIDs = new FastIDSet(dataModel.getNumItems());
this.refreshHelper = new RefreshHelper(new Callable<Object>() {
@Override
public Object call() throws TasteException {
buildAverageDiffs();