changeNext(arrnext, ikey, arrnext[ikey], ikey); changeNext(arrnext, ikey, ikey, arrnext[ikey]);
public void intersection(SFormsFastMapDirect map) { for (int i = 2; i >= 0; i--) { FastSparseSet<Integer>[] lstOwn = elements[i]; if (lstOwn.length == 0) { continue; } FastSparseSet<Integer>[] lstExtern = map.elements[i]; int[] arrnext = next[i]; int pointer = 0; do { FastSparseSet<Integer> first = lstOwn[pointer]; if (first != null) { FastSparseSet<Integer> second = null; if (pointer < lstExtern.length) { second = lstExtern[pointer]; } if (second != null) { first.intersection(second); } if (second == null || first.isEmpty()) { lstOwn[pointer] = null; size--; changeNext(arrnext, pointer, pointer, arrnext[pointer]); } } pointer = arrnext[pointer]; } while (pointer != 0); } }
public void complement(SFormsFastMapDirect map) { for (int i = 2; i >= 0; i--) { FastSparseSet<Integer>[] lstOwn = elements[i]; if (lstOwn.length == 0) { continue; } FastSparseSet<Integer>[] lstExtern = map.elements[i]; int[] arrnext = next[i]; int pointer = 0; do { FastSparseSet<Integer> first = lstOwn[pointer]; if (first != null) { if (pointer >= lstExtern.length) { break; } FastSparseSet<Integer> second = lstExtern[pointer]; if (second != null) { first.complement(second); if (first.isEmpty()) { lstOwn[pointer] = null; size--; changeNext(arrnext, pointer, pointer, arrnext[pointer]); } } } pointer = arrnext[pointer]; } while (pointer != 0); } }
lstOwn[pointer] = second.getCopy(); size++; changeNext(arrnext, pointer, arrnext[pointer], pointer);
changeNext(arrnext, ikey, arrnext[ikey], ikey); changeNext(arrnext, ikey, ikey, arrnext[ikey]);
public void intersection(SFormsFastMapDirect map) { for (int i = 2; i >= 0; i--) { FastSparseSet<Integer>[] lstOwn = elements[i]; if (lstOwn.length == 0) { continue; } FastSparseSet<Integer>[] lstExtern = map.elements[i]; int[] arrnext = next[i]; int pointer = 0; do { FastSparseSet<Integer> first = lstOwn[pointer]; if (first != null) { FastSparseSet<Integer> second = null; if (pointer < lstExtern.length) { second = lstExtern[pointer]; } if (second != null) { first.intersection(second); } if (second == null || first.isEmpty()) { lstOwn[pointer] = null; size--; changeNext(arrnext, pointer, pointer, arrnext[pointer]); } } pointer = arrnext[pointer]; } while (pointer != 0); } }
public void complement(SFormsFastMapDirect map) { for (int i = 2; i >= 0; i--) { FastSparseSet<Integer>[] lstOwn = elements[i]; if (lstOwn.length == 0) { continue; } FastSparseSet<Integer>[] lstExtern = map.elements[i]; int[] arrnext = next[i]; int pointer = 0; do { FastSparseSet<Integer> first = lstOwn[pointer]; if (first != null) { if (pointer >= lstExtern.length) { break; } FastSparseSet<Integer> second = lstExtern[pointer]; if (second != null) { first.complement(second); if (first.isEmpty()) { lstOwn[pointer] = null; size--; changeNext(arrnext, pointer, pointer, arrnext[pointer]); } } } pointer = arrnext[pointer]; } while (pointer != 0); } }
lstOwn[pointer] = second.getCopy(); size++; changeNext(arrnext, pointer, arrnext[pointer], pointer);