/** * First positive integer that is not present in started set. * * @param started Already started indices. * @return First positive integer that is not present in started set. */ private int nextIndex(Collection<Integer> started) { assert started.contains(0); for (int i = 1; i < 10000; i++) { if (!started.contains(i)) return i; } throw new IllegalStateException(); }