/** * @param scores * @param restrictionSet * @return intersection of set (Multiset<Integer>) and restrictionSet (if restrictionSet non-null * & non-empty); otherwise return set */ public static Multiset<Integer> intersect( final Multiset<Integer> scores, final Set<Integer> restrictionSet) { if (restrictionSet != null && !restrictionSet.isEmpty()) { int prevSize = scores.size(); Multiset<Integer> intersection = HashMultiset.create(scores); intersection.retainAll(restrictionSet); log.debug( prevSize != 0 ? ("Size saving by retainAll = " + (((prevSize - intersection.size()) * 100) / prevSize)) + "%" : ""); return intersection; } return scores; }