Pegar próximo ID válido do ArrayList

Tenho um ArrayList do tipo Integer, suponhamos que eu tenha adicionado 6 valores nele depois dado um Collections.sort(id), e então estes valores se ordenaram na seguinte sequência:
1, 2, 3, 10, 15 e 22. Como faria pra percorrer o ArrayList e pegar o próximo id válido (no caso seria “4”), sendo “id” o nome do ArrayList

Não testei, mas acho que isso resolve:

int proximoIdValido( List<Integer> lista ) {
    if (lista.isEmpty()) {
        return 0;
    }
    int atual = lista.get( 0 );
    for (int i = 1; i < lista.size(); i++) {
        atual = lista.get( i );
        int anterior = lista.get( i - 1 );
        if (atual - anterior > 1) {
            return anterior + 1;
        }
    }
    return atual + 1;
}