Q:

Valor padrão em Spinner + gerados do banco

Tenho um spinner que puxa os valores do banco, mas gostaria de deixá-lo sem nada selecionado ou valor padrão:
public void spinnerClientes() {
        ControllerClientes ctClientes = new ControllerClientes(this);
        ArrayList<ArrayCliente> clientes = ctClientes.getClientes();
        clientes.add(new ArrayCliente(0, "Selecione..."));
        ArrayAdapter adapter = new ArrayAdapter(this, android. R.layout.simple_spinner_dropdown_item, clientes);
        adapter.setDropDownViewResource(android. R.layout.simple_spinner_dropdown_item);
        spnClientes.setAdapter(adapter);
}

O problema é que tentando criar o valor padrão clientes.add(new ArrayCliente(0, "Selecione...")); esse valor é adicionado somente no final da lista. 
Também já tentei dessa forma, mas não gera o valor porque é substituído:
ArrayList<ArrayCliente> clientes = ArrayList<>();
clientes.add(new ArrayCliente(0, "Selecione..."));
clientes = ctClientes.getClientes();

A:

Deverá primeiro adicionar o item "Selecione..." e depois o retorno do método getClientes() usando addAll(). 
public void spinnerClientes() {
    ControllerClientes ctClientes = new ControllerClientes(this);
    ArrayList<ArrayCliente> clientes = new ArrayList<>();
    clientes.add(new ArrayCliente(0, "Selecione..."));
    clientes.addAll(ctClientes.getClientes());           
    ArrayAdapter adapter = new ArrayAdapter(this, android. R.layout.simple_spinner_dropdown_item, clientes);
    adapter.setDropDownViewResource(android. R.layout.simple_spinner_dropdown_item);
    spnClientes.setAdapter(adapter);
}

