Hum… se você quer fazer uma pesquisa na verdade a estrutura de dados a usar seria uma outra, que é um Map.
Mas como você ainda está aprendendo arrays, não vou complicar muito sua cabeça.
A primeira coisa a aprender é: não é porque um array tem 30 posições que você tem de preenchê-las todas logo de cara.
A segunda coisa é: Como algumas posições podem estar vazias, você tem de ver se elas estão vazias antes de usá-las.
A terceira coisa é: depois que você aprender direitinho arrays, tente não usá-los, porque você tem de ficar testando para ver se está vazio e isso é um pé no saco.
Para testar se uma posição está vazia, teste contra null. Uma coisa interessante no Java é que, quando você cria um array de 30 posições, ele preenche o array com vazios. Por exemplo:
Cliente [] clientes = new Cliente[30];
Isso criou um array com 30 posições (de 0 até 29), só que todas preenchidas com o valor null (que representa um vazio).
Na hora de você usar a posição 8, por exemplo, você tem de verificar primeiro se ela está preenchida. Um exemplo completo:
if (clientes[8] == null) {
/// A posição está vazia. Vamos preencher com um novo cliente.
clientes[8] = new Cliente ("João", 23);
} else {
/// Vou chamar o método "getNome" da classe Cliente.
System.out.println (clientes[8].getNome());
}