@Override public void remove(int index) { super.remove(index); addMemory(-PageUtils.PAGE_MEMORY_CHILD); long countOffset = children[index].count; int childCount = children.length; PageReference[] newChildren = new PageReference[childCount - 1]; DataUtils.copyExcept(children, newChildren, childCount, index); children = newChildren; totalCount -= countOffset; }
@Override public void remove(int index) { int keyLength = keys.length; int keyIndex = index >= keyLength ? index - 1 : index; Object old = keys[keyIndex]; addMemory(-map.getKeyType().getMemory(old)); Object[] newKeys = new Object[keyLength - 1]; DataUtils.copyExcept(keys, newKeys, keyLength, keyIndex); keys = newKeys; }
@Override public void remove(int index) { int keyLength = keys.length; super.remove(index); Object old = values[index]; addMemory(-map.getValueType().getMemory(old)); Object[] newValues = new Object[keyLength - 1]; DataUtils.copyExcept(values, newValues, keyLength, index); values = newValues; totalCount--; }