void (SFormsFastMapDirect map) { for (int i = 2; i >= 0; i--) { FastSparseSet<Integer>[] lstExtern = map.elements[i]; if (lstExtern.length == 0) { continue; } FastSparseSet<Integer>[] lstOwn = elements[i]; int[] arrnext = next[i]; int[] arrnextExtern = map.next[i]; int pointer = 0; do { if (pointer >= lstOwn.length) { lstOwn = ensureCapacity(i, lstExtern.length, true); arrnext = next[i]; } FastSparseSet<Integer> second = lstExtern[pointer]; if (second != null) { FastSparseSet<Integer> first = lstOwn[pointer]; if (first == null) { lstOwn[pointer] = second.getCopy(); size++; changeNext(arrnext, pointer, arrnext[pointer], pointer); } else { first.union(second); } } pointer = arrnextExtern[pointer]; } while (pointer != 0); } }