void (final int key, final FastSparseSet<Integer> value, boolean remove) { int index = 0; int ikey = key; if (ikey < 0) { index = 2; ikey = -ikey; } else if (ikey >= VarExprent.STACK_BASE) { index = 1; ikey -= VarExprent.STACK_BASE; } FastSparseSet<Integer>[] arr = elements[index]; if (ikey >= arr.length) { if (remove) { return; } else { arr = ensureCapacity(index, ikey + 1, false); } } FastSparseSet<Integer> oldval = arr[ikey]; arr[ikey] = value; int[] arrnext = next[index]; if (oldval == null && value != null) { size++; changeNext(arrnext, ikey, arrnext[ikey], ikey); } else if (oldval != null && value == null) { size--; changeNext(arrnext, ikey, ikey, arrnext[ikey]); } }