if (s.size() != length()) return false; long n = length(); LongIterator i = iterator(), j = s.iterator(); while(n-- != 0) if (i.nextLong() != j.nextLong()) return false; return true; if (s.size() != length()) return false; long n = length(); LongIterator i = iterator(); while(n-- != 0) if (! s.contains(i.nextLong())) return false; return true;
/** Returns a {@link MultiTermIndexIterator} over all terms starting with the given prefix, * provided their number does not exceed the given limit and that this index has a {@link #prefixMap}. */ public IndexIterator documents( final CharSequence prefix, final int limit ) throws IOException, TooManyTermsException { if ( prefixMap != null ) { final LongInterval interval = prefixMap.rangeMap().get( prefix ); if ( interval == LongIntervals.EMPTY_INTERVAL ) return new Index.EmptyIndexIterator(); final IndexIterator result; if ( interval.length() > limit ) throw new TooManyTermsException( interval.length() ); if ( interval.length() == 1 ) result = documents( interval.left ); else { IndexIterator[] baseIterator = new IndexIterator[ (int)interval.length() ]; int k = 0; for( LongIterator i = interval.iterator(); i.hasNext(); ) baseIterator[ k++ ] = documents( i.nextLong() ); result = MultiTermIndexIterator.getInstance( this, baseIterator ); } result.term( prefix + "*" ); return result; } else throw new UnsupportedOperationException( "Index " + this + " has no prefix map" ); }
IndexIterator[] baseIterator = new IndexIterator[ (int)interval.length()]; int k = 0; for( LongIterator i = interval.iterator(); i.hasNext(); ) baseIterator[ k++ ] = documents( i.nextLong() );