// is allowed to return null when result is empty static int[] intersectSortedIntArrays(int[] a, int[] b) { int i = 0, j = 0, la = l(a), lb = l(b); if (la == 0 || lb == 0) null; IntBuffer buf = new(max(la, lb)); while (i < la && j < lb) { int x = a[i], y = b[j]; if (x == y) { buf.add(x); ++i; ++j; } else if (x < y) ++i; else ++j; } ret buf.toArray(); }