@Override public void setVector(String id, float[] vector) { try (AutoLock al = lock.autoWriteLock()) { if (vectors.put(id, vector) == null) { // ID was actually new recentIDs.add(id); } } }
@Override public <V> MutableSet<V> collect( LongToObjectFunction<? extends V> function ) { final MutableSet<V> result = new UnifiedSet<>( size() ); each( element -> { result.add( function.apply( element ) ); } ); return result; }
@Override public ImmutableSet<T> newWith(T element) { if (!this.contains(element)) { MutableSet<T> result = UnifiedSet.newSet(this); result.add(element); return result.toImmutable(); } return this; }
@Override public boolean anySatisfy(Predicate<? super T> predicate) { MutableSet<T> seenSoFar = UnifiedSet.newSet(); return Iterate.anySatisfy(this.adapted, each -> seenSoFar.add(each) && predicate.accept(each)); }
@Override public boolean noneSatisfy(Predicate<? super T> predicate) { MutableSet<T> seenSoFar = UnifiedSet.newSet(); return Iterate.allSatisfy(this.adapted, each -> !seenSoFar.add(each) || !predicate.accept(each)); }
@Override public Optional<T> detectOptional(Predicate<? super T> predicate) { MutableSet<T> seenSoFar = UnifiedSet.newSet(); return Iterate.detectOptional(this.adapted, each -> seenSoFar.add(each) && predicate.accept(each)); }
@Override public MutableSet<T> toSet() { MutableSet<T> result = UnifiedSet.newSet(this.sizeDistinct()); this.forEachWithOccurrences((each, occurrences) -> result.add(each)); return result; }
@Override public Optional<T> detectOptional(Predicate<? super T> predicate) { MutableSet<T> seenSoFar = UnifiedSet.newSet(); return Iterate.detectOptional(this.adapted, each -> seenSoFar.add(each) && predicate.accept(each)); }
@Override public MutableSet<T> toSet() { MutableSet<T> result = UnifiedSet.newSet(this.sizeDistinct()); this.forEachWithOccurrences((each, occurrences) -> result.add(each)); return result; }
@Override public T detect(Predicate<? super T> predicate) { MutableSet<T> seenSoFar = UnifiedSet.newSet(); return Iterate.detect(this.adapted, each -> seenSoFar.add(each) && predicate.accept(each)); }
@Override public ImmutableSet<T> newWith(T element) { if (!this.contains(element)) { MutableSet<T> result = UnifiedSet.newSet(this); result.add(element); return result.toImmutable(); } return this; }
@Override public void each(Procedure<? super T> procedure) { MutableSet<T> seenSoFar = UnifiedSet.newSet(); Iterate.forEach(this.adapted, each -> { if (seenSoFar.add(each)) { procedure.value(each); } }); }
@Override public boolean anySatisfy(Predicate<? super T> predicate) { MutableSet<T> seenSoFar = UnifiedSet.newSet(); return Iterate.anySatisfy(this.adapted, each -> seenSoFar.add(each) && predicate.accept(each)); }
@Override public T detect(Predicate<? super T> predicate) { MutableSet<T> seenSoFar = UnifiedSet.newSet(); return Iterate.detect(this.adapted, each -> seenSoFar.add(each) && predicate.accept(each)); }
@Override public <V> MutableSet<V> collect(ByteToObjectFunction<? extends V> function) { MutableSet<V> target = UnifiedSet.newSet(this.size()); this.forEach(each -> target.add(function.valueOf(each))); return target; }
@Override public <V> MutableSet<V> collect(ByteToObjectFunction<? extends V> function) { MutableSet<V> target = UnifiedSet.newSet(this.size()); this.forEach(each -> target.add(function.valueOf(each))); return target; }
@Override public <V> ImmutableSet<V> collect(ByteToObjectFunction<? extends V> function) { MutableSet<V> target = UnifiedSet.newSet(this.size()); this.forEach(each -> target.add(function.valueOf(each))); return target.toImmutable(); }
@Override public <V> ImmutableSet<V> collect(ByteToObjectFunction<? extends V> function) { MutableSet<V> target = UnifiedSet.newSet(this.size()); this.forEach(each -> target.add(function.valueOf(each))); return target.toImmutable(); }
@Override public Set<Entry<K, V>> entrySet() { MutableSet<Entry<K, V>> set = UnifiedSet.newSet(this.size()); this.forEachKeyValue((key, value) -> set.add(ImmutableEntry.of(key, value))); return set.toImmutable().castToSet(); }
@Override public Set<Entry<K, V>> entrySet() { MutableSet<Entry<K, V>> set = UnifiedSet.newSet(this.size()); this.forEachKeyValue((key, value) -> set.add(ImmutableEntry.of(key, value))); return set.toImmutable().castToSet(); }