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);
}
}