LongArrayBitSet implements ArrayBitSet { @Override public boolean or( @NotNull final BitSet set) { assert size == set.getSize(); boolean notEmpty = false; final long[] from = ((ArrayBitSet) set).toArray(); for (int i = 0; i < usedWords; i++) { final long word = words[i] | from[i]; words[i] = word; if (word != 0) { notEmpty = true; } } return notEmpty; } private  LongArrayBitSet(
            final int size,
            @NotNull
            final long[] words); @NotNull static ArrayBitSet zero(final int size); @NotNull static ArrayBitSet one(final int size); @Override int getSize(); @Override int cardinality(); @NotNull @Override long[] toArray(); @Override void set(final int i); @Override boolean get(final int i); void clear(); @Override boolean inverse(); void set(); @Override boolean and(
            @NotNull
            final BitSet set); @Override boolean or(
            @NotNull
            final BitSet set); @Override boolean xor(
            @NotNull
            BitSet set); @Override boolean and(
            @NotNull
            Buffer longArrayBitSetInByteBuffer,
            long startPosition,
            int bitSetSizeInLongs); @Override boolean or(
            @NotNull
            final Buffer longArrayBitSetInByteBuffer,
            final long startPosition,
            final int bitSetSizeInLongs); @Override boolean xor(
            @NotNull
            Buffer longArrayBitSetInByteBuffer,
            long startPosition,
            int bitSetSizeInLongs); @Override boolean isEmpty(); @Override int nextSetBit(final int fromIndexInclusive);  }
@Test public void or() { for (int i = 1; i < SIZE; i++) { final BitSet bs1 = LongArrayBitSet.one(i); final BitSet bs2 = LongArrayBitSet.zero(i); assertEquals(i, bs1.cardinality()); assertEquals(0, bs2.cardinality()); bs2.or(bs1); assertEquals(i, bs2.cardinality()); } }