@Override public BooleanBigList subList(final long from, final long to) { ensureIndex(from); ensureIndex(to); if (from > to) throw new IndexOutOfBoundsException("Start index (" + from + ") is greater than end index (" + to + ")"); return new BooleanSubList(this, from, to); } /**
@Override public void add(boolean k) { if (last == -1) throw new IllegalStateException(); BooleanSubList.this.add(pos++, k); last = -1; assert assertRange(); } @Override
@Override public BooleanBigList subList(final long from, final long to) { ensureIndex(from); ensureIndex(to); if (from > to) throw new IllegalArgumentException("Start index (" + from + ") is greater than end index (" + to + ")"); return new BooleanSubList(this, from, to); } @Override
@Override public BooleanBigListIterator listIterator(final long index) { ensureIndex(index); return new BooleanBigListIterator() { long pos = index, last = -1;
@Override public void remove() { if (last == -1) throw new IllegalStateException(); BooleanSubList.this.removeBoolean(last); /* * If the last operation was a next(), we are removing an element *before* us, * and we must decrease pos correspondingly. */ if (last < pos) pos--; last = -1; assert assertRange(); } };
@Override public boolean add(final boolean k) { l.add(to, k); to++; assert assertRange(); return true; } @Override
@Override public boolean getBoolean(long index) { ensureRestrictedIndex(index); return l.getBoolean(from + index); } @Override
@Override public void add(final long index, final boolean k) { ensureIndex(index); l.add(from + index, k); to++; assert assertRange(); } @Override
@Override public boolean rem(boolean k) { long index = indexOf(k); if (index == -1) return false; to--; l.removeBoolean(from + index); assert assertRange(); return true; } @Override
@Override public boolean addAll(final long index, final BooleanBigList l) { ensureIndex(index); return super.addAll(index, l); } }
@Override public void set(boolean k) { if (last == -1) throw new IllegalStateException(); BooleanSubList.this.set(last, k); } @Override
@Override public boolean removeBoolean(long index) { ensureRestrictedIndex(index); to--; return l.removeBoolean(from + index); } @Override
@Override public boolean addAll(final long index, final BooleanCollection c) { ensureIndex(index); return super.addAll(index, c); } @Override
@Override public boolean set(long index, boolean k) { ensureRestrictedIndex(index); return l.set(from + index, k); } @Override
@Override public boolean hasNext() { return pos < size64(); } @Override
@Override public void addElements(final long index, final boolean a[][], long offset, long length) { ensureIndex(index); l.addElements(this.from + index, a, offset, length); this.to += length; assert assertRange(); } @Override
@Override public void removeElements(final long from, final long to) { ensureIndex(from); ensureIndex(to); l.removeElements(this.from + from, this.from + to); this.to -= (to - from); assert assertRange(); } @Override
@Override public boolean addAll(final long index, final Collection<? extends Boolean> c) { ensureIndex(index); to += c.size(); return l.addAll(from + index, c); } @Override
@Override public void getElements(final long from, final boolean[][] a, final long offset, final long length) { ensureIndex(from); if (from + length > size64()) throw new IndexOutOfBoundsException( "End index (" + from + length + ") is greater than list size (" + size64() + ")"); l.getElements(this.from + from, a, offset, length); } @Override