LongCollection qset = items;
if (vector.size() < qset.size()) {
qset = vector.keySet();
}
final LongSet candidates = new LongOpenHashSet();
for (LongIterator iter = qset.iterator(); iter.hasNext();) {
final long item = iter.nextLong();
LongSet users = snapshot.getItemUsers(item);
if (users != null) {
candidates.addAll(users);
}
}
candidates.remove(uid);
logger.debug("Found {} candidate neighbors for user {}", candidates.size(), uid);
return new Iterable<Neighbor>() {
@Override
public Iterator<Neighbor> iterator() {
return new NeighborIterator(uid, vector, candidates);
}