@Override public boolean addAll(final Collection<? extends E> arg) { boolean changed = false; for (final E entry : arg) { changed |= add(entry); } return changed; }
private List<Result> partitionHits(Result result, String summaryClass) { List<Result> parts = new ArrayList<>(); TinyIdentitySet<Query> queryMap = new TinyIdentitySet<>(4); for (Iterator<Hit> i = hitIterator(result); i.hasNext(); ) { Hit hit = i.next(); if (hit instanceof FastHit) { FastHit fastHit = (FastHit) hit; if ( ! fastHit.isFilled(summaryClass)) { Query q = fastHit.getQuery(); if (q == null) { q = result.hits().getQuery(); // fallback for untagged hits } int idx = queryMap.indexOf(q); if (idx < 0) { idx = queryMap.size(); Result r = new Result(q); parts.add(r); queryMap.add(q); } parts.get(idx).hits().add(fastHit); } } } return parts; }
/** * This is an extremely expensive implementation of * {@link Set#removeAll(Collection)}. It is implemented as O(n**2). */ @Override public boolean removeAll(final Collection<?> arg) { boolean changed = false; for (final Object entry : arg) { final int i = indexOf(entry); if (i >= 0) { entries[i] = null; changed = true; } } if (changed) { clean(); } return changed; }
@Override public boolean contains(final Object arg) { return indexOf(arg) >= 0; }
private void append(final Object arg) { if (size == entries.length) { grow(); } entries[size++] = arg; }
/** * This is an extremely expensive implementation of * {@link Set#retainAll(Collection)}. It is implemented as O(n**2). */ @Override public boolean retainAll(final Collection<?> arg) { boolean changed = false; for (int i = 0; i < size; ++i) { final Object entry = entries[i]; boolean exists = false; // cannot use Collection.contains(), as we want identity for (final Object v : arg) { if (v == entry) { exists = true; break; } } if (!exists) { entries[i] = null; changed = true; } } if (changed) { clean(); } return changed; }
/** * This is an extremely expensive implementation of * {@link Set#containsAll(Collection)}. It is implemented as O(n**2). */ @Override public boolean containsAll(final Collection<?> arg) { for (final Object entry : arg) { if (indexOf(entry) < 0) { return false; } } return true; }