CompactList implements Iterable<MutableDirectBuffer>, CloseableSilently { public void remove(final int idx) { final int size = size(); boundsCheckIncludingSize(idx, size); if (size - idx > 1) { final int elementOffset = elementOffset(framedElementLength, idx); final int copyOffset = elementOffset + framedElementLength; final int copyLength = (size - idx - 1) * framedElementLength; listBuffer.putBytes(elementOffset, listBuffer, copyOffset, copyLength); } final int lastElementOffset = elementOffset(framedElementLength, size - 1); setMemory(lastElementOffset, framedElementLength, (byte) 0); setSize(size - 1); } CompactList(
      final int elementMaxLength, final int capacity, final BufferAllocator bufferAllocator);  CompactList(
      final AllocatedBuffer allocatedBuffer, final int elementMaxLength, final int capacity);  CompactList(final UnsafeBuffer listBuffer); void add(final DirectBuffer srcBuffer); void add(final DirectBuffer srcBuffer, final int offset, final int length); void add(final DirectBuffer srcBuffer, final int offset, final int length, final int idx); void set(final int idx, final DirectBuffer srcBuffer); void set(final int idx, final DirectBuffer srcBuffer, final int offset, final int length); void remove(final int idx); int size(); int sizeVolatile(); int capacity(); int maxElementDataLength(); int get(final int idx, final MutableDirectBuffer dstBuffer, final int offset); int wrap(final int idx, final MutableDirectBuffer dstBuffer); int getEncodedSize(); DirectBuffer getRawBuffer(); int find(final DirectBuffer key, final Comparator<DirectBuffer> c); int copyInto(final MutableDirectBuffer dstBuffer, final int offset); void clear(); @Override CompactListIterator iterator(); InputStream toInputStream(); @Override void close();  }
@Test public void shouldExceptionWhenIndexIsNegativeWhenRemovingElement() { expectedExceptionRule.expect(IndexOutOfBoundsException.class); list.remove(-1); }
@Test public void shouldExceptionWhenIndexIsGreaterThanSizeWhenRemovingElement() { expectedExceptionRule.expect(IndexOutOfBoundsException.class); list.remove(0); }