Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

A classe banco com um busca e remoção de empresa elegante. Um recurso usado nos bancos de dados de verdade, implementado em puro código, sem biblioteca da linguagem.

class Banco {

  private static final List <Empresa>  lista = new ArrayList();
  private static int sequence = 1;

  /* Auxiliar variables */
  private int start;
  private int middle;
  private int end;
  /* Auxiliar variables */

  static {

    Empresa empresa = new Empresa();
    Empresa empresa2 = new Empresa();

    incrementId(empresa);
    empresa.setNome("Google");

    incrementId(empresa2);
    empresa2.setNome("Facebook");

    Banco.lista.add(empresa);
    Banco.lista.add(empresa2);
  }

  public void adiciona(Empresa empresa) {
    incrementId(empresa);
    Banco.lista.add(empresa);
  }

  private static void incrementId(Empresa empresa) {
    empresa.setId(sequence++);
  }

  public List<Empresa> getEmpresas()
  {
    return Banco.lista;
  }

  private void binarySearch(int paramId)
  {
    start = 0;
    end = Banco.lista.size() - 1;
    middle = (start + end) / 2;

    while(start < end && Banco.lista.get(middle).getId() != paramId)
    {
      if(paramId > Banco.lista.get(middle).getId())
        start = middle + 1;
      else
        end = middle - 1;

      middle = (start + end) / 2;
    }
    middle = Banco.lista.get(middle).getId() != paramId ? -1 : middle;
  }

  public void removeEmpresa(int paramId) {

    binarySearch(paramId);
    if(middle != -1)
      Banco.lista.remove(middle);
  }
}
1 resposta
solução!

Oi Victor!

Muito bom! Parabéns pelo empenho nos estudos!

Continue praticando e qualquer dúvida pode contar com a gente.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software