@Nonnull @Override public Map<Long, Double> score(long user, @Nonnull Collection<Long> items) { LongSet itemSet = LongUtils.frozenSet(items); double base = model.getIntercept() + model.getUserBias(user); return LongUtils.flyweightMap(itemSet, iid -> base + model.getItemBias(iid)); }
@Test public void testMapSomeStuff() { for (Set<Long> keys: someSets(longs())) { Long2DoubleMap map = LongUtils.flyweightMap(LongUtils.frozenSet(keys), x -> (-x) % 10); assertThat(map.keySet(), equalTo(keys)); assertThat(map.size(), equalTo(keys.size())); for (Long k: keys) { assertThat(map, hasEntry(k, (double) ((-k) % 10))); } } } }
@Nonnull @Override public Map<Long, Double> score(long user, @Nonnull Collection<Long> items) { LongSet itemSet = LongUtils.frozenSet(items); double base = model.getIntercept() + model.getUserBias(user); return LongUtils.flyweightMap(itemSet, iid -> base + model.getItemBias(iid)); }