public boolean contains(Numberable o) { if (array != null) { return array[findPosition(o)] != null; } else { int number = o.getNumber(); if (number == 0) { throw new RuntimeException("unnumbered"); } return bits.get(number); } }
public boolean add(Numberable o) { if (array != null) { int pos = findPosition(o); if (array[pos] == o) { return false; doubleSize(); if (array != null) { pos = findPosition(o); } else { int number = o.getNumber();
private final void doubleSize() { int uniSize = universe.size(); if (array.length * 128 > uniSize) { bits = new BitVector(uniSize); Numberable[] oldArray = array; array = null; for (Numberable element : oldArray) { if (element != null) { bits.set(element.getNumber()); } } } else { Numberable[] oldArray = array; array = new Numberable[array.length * 2]; for (Numberable element : oldArray) { if (element != null) { array[findPosition(element)] = element; } } } }
public boolean contains( Numberable o ) { if( array != null ) { return array[ findPosition(o) ] != null; } else { int number = o.getNumber(); if( number == 0 ) throw new RuntimeException( "unnumbered" ); return bits.get( number ); } }
public boolean contains( Numberable o ) { if( array != null ) { return array[ findPosition(o) ] != null; } else { int number = o.getNumber(); if( number == 0 ) throw new RuntimeException( "unnumbered" ); return bits.get( number ); } }
public boolean add( Numberable o ) { if( array != null ) { int pos = findPosition( o ); if( array[pos] == o ) return false; size++; if( size*3 > array.length*2 ) { doubleSize(); if( array != null ) { pos = findPosition( o ); } else { int number = o.getNumber(); if( number == 0 ) throw new RuntimeException( "unnumbered" ); return bits.set( number ); } } array[pos] = o; return true; } else { int number = o.getNumber(); if( number == 0 ) throw new RuntimeException( "unnumbered" ); if( bits.set( number ) ) { size++; return true; } else { return false; } } } public boolean contains( Numberable o ) {
public boolean add( Numberable o ) { if( array != null ) { int pos = findPosition( o ); if( array[pos] == o ) return false; size++; if( size*3 > array.length*2 ) { doubleSize(); if( array != null ) { pos = findPosition( o ); } else { int number = o.getNumber(); if( number == 0 ) throw new RuntimeException( "unnumbered" ); return bits.set( number ); } } array[pos] = o; return true; } else { int number = o.getNumber(); if( number == 0 ) throw new RuntimeException( "unnumbered" ); if( bits.set( number ) ) { size++; return true; } else { return false; } } } public boolean contains( Numberable o ) {
private final void doubleSize() { int uniSize = universe.size(); if( array.length*128 > uniSize ) { bits = new BitVector( uniSize ); Numberable[] oldArray = array; array = null; for (Numberable element : oldArray) { if( element != null ) { bits.set( element.getNumber() ); } } } else { Numberable[] oldArray = array; array = new Numberable[array.length*2]; for (Numberable element : oldArray) { if( element != null ) { array[findPosition(element)] = element; } } } } public Iterator iterator() {
private final void doubleSize() { int uniSize = universe.size(); if( array.length*128 > uniSize ) { bits = new BitVector( uniSize ); Numberable[] oldArray = array; array = null; for (Numberable element : oldArray) { if( element != null ) { bits.set( element.getNumber() ); } } } else { Numberable[] oldArray = array; array = new Numberable[array.length*2]; for (Numberable element : oldArray) { if( element != null ) { array[findPosition(element)] = element; } } } } public Iterator iterator() {