@Override public int size() { return keyIndex.size(); }
@Override public boolean isEmpty() { return size() == 0; }
@Override public int size() { return map.size(); }
@Override public int size() { return 1 << inputSet.size(); }
@Override public int size() { return map.size(); }
@Override public int size() { return IntMath.binomial(index.size(), size); }
@Override public int size() { return map().size(); }
private boolean isFull() { return size == keyToIndex().size(); }
@Override UnmodifiableIterator<Entry<K, V>> entryIterator() { return new AbstractIterator<Entry<K, V>>() { private int index = -1; private final int maxIndex = keyToIndex().size(); @Override protected Entry<K, V> computeNext() { for (index++; index < maxIndex; index++) { V value = getValue(index); if (value != null) { return Maps.immutableEntry(getKey(index), value); } } return endOfData(); } }; } }
@Override public int hashCode() { /* * The sum of the sums of the hash codes in each subset is just the sum of * each input element's hash code times the number of sets that element * appears in. Each element appears in exactly half of the 2^n sets, so: */ return inputSet.keySet().hashCode() << (inputSet.size() - 1); }
/** * Returns a multimap view of the map. * * @since 14.0 */ public ImmutableSetMultimap<K, V> asMultimap() { if (isEmpty()) { return ImmutableSetMultimap.of(); } ImmutableSetMultimap<K, V> result = multimapView; return (result == null) ? (multimapView = new ImmutableSetMultimap<>(new MapViewOfValuesAsSingletonSets(), size(), null)) : result; }
final ImmutableMap<E, Integer> index = Maps.indexMap(set); checkNonnegative(size, "size"); checkArgument(size <= index.size(), "size (%s) must be <= set.size() (%s)", size, index.size()); if (size == 0) { return ImmutableSet.<Set<E>>of(ImmutableSet.<E>of()); } else if (size == index.size()) { return ImmutableSet.<Set<E>>of(index.keySet());