/** Checks whether this interval is equal to another set of integers. * * @param o an object. * @return true if <code>o</code> is an ordered set of integer containing * the same element of this interval in the same order, or if <code>o</code> * is a set of integers containing the same elements of this interval. */ public boolean equals( final Object o ) { if ( o instanceof Interval ) return ((Interval)o).left == left && ((Interval)o).right == right; else if ( o instanceof IntSortedSet ) { // For sorted sets, we require the same order IntSortedSet s = (IntSortedSet) o; if ( s.size() != length() ) return false; int n = length(); IntIterator i = iterator(), j = s.iterator(); while( n-- != 0 ) if ( i.nextInt() != j.nextInt() ) return false; return true; } else if ( o instanceof IntSet ) { // For sets, we just require the same elements IntSet s = (IntSet) o; if ( s.size() != length() ) return false; int n = length(); IntIterator i = iterator(); while( n-- != 0 ) if ( ! s.contains( i.nextInt() ) ) return false; return true; } else return false; } }
/** Checks whether this interval is equal to another set of integers. * * @param o an object. * @return true if <code>o</code> is an ordered set of integer containing * the same element of this interval in the same order, or if <code>o</code> * is a set of integers containing the same elements of this interval. */ public boolean equals( final Object o ) { if ( o instanceof Interval ) return ((Interval)o).left == left && ((Interval)o).right == right; else if ( o instanceof IntSortedSet ) { // For sorted sets, we require the same order IntSortedSet s = (IntSortedSet) o; if ( s.size() != length() ) return false; int n = length(); IntIterator i = iterator(), j = s.iterator(); while( n-- != 0 ) if ( i.nextInt() != j.nextInt() ) return false; return true; } else if ( o instanceof IntSet ) { // For sets, we just require the same elements IntSet s = (IntSet) o; if ( s.size() != length() ) return false; int n = length(); IntIterator i = iterator(); while( n-- != 0 ) if ( ! s.contains( i.nextInt() ) ) return false; return true; } else return false; } }
if (s.size() != length()) return false; int n = length(); IntIterator i = iterator(), j = s.iterator(); while(n-- != 0) if (i.nextInt() != j.nextInt()) return false; return true; if (s.size() != length()) return false; int n = length(); IntIterator i = iterator(); while(n-- != 0) if (! s.contains(i.nextInt())) 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 Interval interval = prefixMap.rangeMap().get( prefix ); if ( interval == Intervals.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[ interval.length()]; int k = 0; for( IntIterator i = interval.iterator(); i.hasNext(); ) baseIterator[ k++ ] = documents( i.nextInt() ); result = MultiTermIndexIterator.getInstance( this, baseIterator ); } result.term( prefix + "*" ); return result; } else throw new UnsupportedOperationException( "Index " + this + " has no prefix map" ); }
IndexIterator[] baseIterator = new IndexIterator[ interval.length()]; int k = 0; for( IntIterator i = interval.iterator(); i.hasNext(); ) baseIterator[ k++ ] = documents( i.nextInt() );