Refine search
private List<V> getCopy(@Nullable Object key) { return unmodifiableList(Lists.newArrayList(new ValueForKeyIterator(key))); }
public boolean remove(@Nullable Object key, @Nullable Object value) { Iterator<V> values = new ValueForKeyIterator(key); while (values.hasNext()) { if (Objects.equal(values.next(), value)) { values.remove(); return true; } } return false; }
@Override public ListIterator<V> listIterator(int index) { return new ValueForKeyIterator(key, index); } };
/** Removes all nodes for the specified key. */ private void removeAllNodes(@Nullable Object key) { Iterators.clear(new ValueForKeyIterator(key)); }
/** * {@inheritDoc} * * <p>If any entries for the specified {@code key} already exist in the multimap, their values are * changed in-place without affecting the iteration order. * * <p>The returned list is immutable and implements {@link java.util.RandomAccess}. */ @CanIgnoreReturnValue @Override public List<V> replaceValues(@Nullable K key, Iterable<? extends V> values) { List<V> oldValues = getCopy(key); ListIterator<V> keyValues = new ValueForKeyIterator(key); Iterator<? extends V> newValues = values.iterator(); // Replace existing values, if any. while (keyValues.hasNext() && newValues.hasNext()) { keyValues.next(); keyValues.set(newValues.next()); } // Remove remaining old values, if any. while (keyValues.hasNext()) { keyValues.next(); keyValues.remove(); } // Add remaining new values, if any. while (newValues.hasNext()) { keyValues.add(newValues.next()); } return oldValues; }
@Override public ListIterator<V> listIterator(int index) { return new ValueForKeyIterator(key, index); } };
/** Removes all nodes for the specified key. */ private void removeAllNodes(@NullableDecl Object key) { Iterators.clear(new ValueForKeyIterator(key)); }
private List<V> getCopy(@NullableDecl Object key) { return unmodifiableList(Lists.newArrayList(new ValueForKeyIterator(key))); }
@Override public ListIterator<V> listIterator(int index) { return new ValueForKeyIterator(key, index); } };
/** Removes all nodes for the specified key. */ private void removeAllNodes(@NullableDecl Object key) { Iterators.clear(new ValueForKeyIterator(key)); }
private List<V> getCopy(@NullableDecl Object key) { return unmodifiableList(Lists.newArrayList(new ValueForKeyIterator(key))); }
/** * {@inheritDoc} * * <p>If any entries for the specified {@code key} already exist in the multimap, their values are * changed in-place without affecting the iteration order. * * <p>The returned list is immutable and implements {@link java.util.RandomAccess}. */ @CanIgnoreReturnValue @Override public List<V> replaceValues(@NullableDecl K key, Iterable<? extends V> values) { List<V> oldValues = getCopy(key); ListIterator<V> keyValues = new ValueForKeyIterator(key); Iterator<? extends V> newValues = values.iterator(); // Replace existing values, if any. while (keyValues.hasNext() && newValues.hasNext()) { keyValues.next(); keyValues.set(newValues.next()); } // Remove remaining old values, if any. while (keyValues.hasNext()) { keyValues.next(); keyValues.remove(); } // Add remaining new values, if any. while (newValues.hasNext()) { keyValues.add(newValues.next()); } return oldValues; }
/** * {@inheritDoc} * * <p>If any entries for the specified {@code key} already exist in the multimap, their values are * changed in-place without affecting the iteration order. * * <p>The returned list is immutable and implements {@link java.util.RandomAccess}. */ @CanIgnoreReturnValue @Override public List<V> replaceValues(@NullableDecl K key, Iterable<? extends V> values) { List<V> oldValues = getCopy(key); ListIterator<V> keyValues = new ValueForKeyIterator(key); Iterator<? extends V> newValues = values.iterator(); // Replace existing values, if any. while (keyValues.hasNext() && newValues.hasNext()) { keyValues.next(); keyValues.set(newValues.next()); } // Remove remaining old values, if any. while (keyValues.hasNext()) { keyValues.next(); keyValues.remove(); } // Add remaining new values, if any. while (newValues.hasNext()) { keyValues.add(newValues.next()); } return oldValues; }
@Override public ListIterator<V> listIterator(int index) { return new ValueForKeyIterator(key, index); } };
@Override public ListIterator<V> listIterator(int index) { return new ValueForKeyIterator(key, index); } @Override public boolean removeAll(Collection<?> c) {
@Override public ListIterator<V> listIterator(int index) { return new ValueForKeyIterator(key, index); } };
@Override public ListIterator<V> listIterator(int index) { return new ValueForKeyIterator(key, index); } };
@Override public ListIterator<V> listIterator(int index) { return new ValueForKeyIterator(key, index); } };
@Override public ListIterator<V> listIterator(int index) { return new ValueForKeyIterator(key, index); } };
@Override public ListIterator<V> listIterator(int index) { return new ValueForKeyIterator(key, index); } };