/** * Fast iterator over entries (it can reuse entry objects). * * @param state The state of entries to iterate. * @return a fast iterator over all key/value pairs * @see it.unimi.dsi.fastutil.longs.Long2DoubleMap.FastEntrySet#fastIterator() * Long2DoubleMap.FastEntrySet.fastIterator() * @since 0.11 */ public Iterator<VectorEntry> fastIterator(VectorEntry.State state) { IntIterator iter; switch (state) { case SET: iter = keys.activeIndexIterator(isMutable()); break; case UNSET: { iter = keys.clone().invert().activeIndexIterator(false); break; } case EITHER: { iter = IntIterators.fromTo(0, keys.domainSize()); break; } default: // should be impossible throw new IllegalArgumentException("invalid entry state"); } return new FastIterImpl(iter, state); }
/** * Get the set of unset keys. This is \(D \\ S\), where \(D\) is the key domain and \(S\) the key * set. */ public LongSortedSet unsetKeySet() { return keys.clone().invert().activeSetView(); }