public boolean remove(int key) {

    int oldSize = size();

    super.addOrRemove(key, 0, null, null, true);

    boolean result = oldSize != size();

    if (result) {
      int[] array = toArray();

      super.clear();

      for (int i = 0; i < array.length; i++) {
        add(array[i]);
      }
    }

    return result;
  }