public boolean remove(long key) {

    int oldSize = size();

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

    return oldSize != size();
  }
  public boolean add(int key) {

    int oldSize = size();

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

    return oldSize != size();
  }
  public boolean put(long key, int value) {

    int oldSize = size();

    super.addOrRemove(key, value, null, null, false);

    return oldSize != size();
  }
  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;
  }