@Override public boolean contains(final Object arg) { return indexOf(arg) >= 0; }
/** * 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; }
@Override public boolean add(final E arg) { final int i = indexOf(arg); if (i >= 0) { return false; } append(arg); return true; }
/** * 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 remove(final Object arg) { final int i = indexOf(arg); if (i < 0) { return false; } delete(i); return true; }
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; }