Dúvidas em um cadastro de pacientes!

Olá pessoa, boa tarde!
Estou com dúvida em:

  • como colocar os pacientes em ordem alfabética com o ‘compare to’.
  • como fazer os pacientes que estão depois de um determinado paciente (que deletei no meio do vetor), “cheguem para a esquerda” para ocupar seu lugar.
  • como consultar os clientes pelo código de cada um (código que será informado pelo Scanner)

Aí está minha classe Principal:

[code]import java.util.Scanner;

public class Principal {

private static Scanner entrada = new Scanner(System.in);

private static Paciente[] vetorPacientes;

private static int menu() {

	System.out.println("[[[ REGISTRO DE PACIENTES ]]]");
	System.out.println("(1) Incluir Paciente");
	System.out.println("(2) Excluir Paciente");
	System.out.println("(3) Consultar Paciente");
	System.out.println("(4) Listar Pacientes");
	System.out.println("(5) Sair");
	System.out.print("Digite a opção desejada:");
	return entrada.nextInt();
}

private static Paciente criarPaciente() {
	Paciente p = new Paciente();
	System.out.print("Digite o nome do paciente:");
	p.setNome(entrada.next());
	System.out.println("Digite o sexo do paciente:");
	p.setSexo(entrada.next());
	System.out.println("Digite o idade do paciente:");
	p.setIdade(entrada.nextInt());
	System.out.println("Digite o CPF do paciente:");
	p.setCpf(entrada.next());
	System.out.println("Digite o endereço do paciente:");
	p.setEndereco(entrada.next());
	System.out.println("Digite o código do paciente:");
	p.setCodigo(entrada.nextInt());

	return p;
}

public static void main(String[]args){
	
	int qtdePacientes = 0;
	int indice = -1;
	System.out.println("[[[ REGISTRO DE PACIENTES ]]]");
	System.out.println("Informe a quantidade de pacientes:");
	qtdePacientes = entrada.nextInt();
	vetorPacientes = new Paciente [qtdePacientes];
	int retorno = menu();
	
		do{
			switch (retorno){

			case 1:
				if (indice >= vetorPacientes.length){
					System.out.print("Lista cheia!\n");
				}
				else{
						indice++;
						vetorPacientes[indice] = criarPaciente();
						System.out.println ("Paciente registrado com sucesso!");
				}
				retorno = menu();
				break;				
			case 2:
				if (indice<0)
					System.out.println ("Não há pacientes cadastrados!");
				else{
						vetorPacientes[indice] = null;
						System.out.println ("Paciente excluído com sucesso");
						indice--;
				}
				retorno = menu();
				break;
			
			case 3:
				int codigo;
				if (indice<0)
					System.out.println("Não há pacientes cadastrados!");
					else{
						System.out.print ("Informe o código do paciente:");
						codigo = entrada.nextInt();
						boolean pacienteEncontrado = false;
						
						for(int i = 0; i<indice; i++)	
							if(vetorPacientes[i].getCodigo() == codigo){
								System.out.println ("Paciente");
								System.out.println ("Código:"+vetorPacientes[i].getCodigo());
								System.out.println ("Nome:"+vetorPacientes[i].getNome());
								System.out.println ("Endereço:"+vetorPacientes[i].getEndereco());
								System.out.println ("Idade:"+vetorPacientes[i].getIdade());
								System.out.println ("CPF:"+vetorPacientes[i].getCpf());
								System.out.println ("Sexo:"+vetorPacientes[i].getSexo()+"\n");
					
								pacienteEncontrado = true;
							}
					if(!pacienteEncontrado)
						System.out.println ("Paciente não encontrado");
					}
				retorno = menu();
					break;
			
			case 4:
				if (indice< 0)
					System.out.println ("Não há pacientes cadastrados!");
				else
					for(Paciente paciente:vetorPacientes){
							System.out.println ("Paciente");
							System.out.println ("Código:"+paciente.getCodigo());
							System.out.println ("Nome:"+paciente.getNome());
							System.out.println ("Endereço:"+paciente.getEndereco());
							System.out.println ("Idade:"+paciente.getIdade());
							System.out.println ("CPF:"+paciente.getCpf());
							System.out.println ("Sexo:"+paciente.getSexo()+"\n");
					}
				retorno = menu();
					break;
			
			case 5: System.exit(0);
				break;
				default: break;
			}
		}while(retorno>0);
}

}[/code]

Vou fazer algumas sugestões:

1 - Mude o nome da variável vetorPacientes para algo como arrayPacientes. Um vetor no Java é diferente de um array, que exige, de antemão a informação da quantidade de níveis;

2 - Para fazer uma ordenação, pode-se converter esse array de pacientes para um ArrayList, e no caso, usar a interface Comparator para fazer a organização dos registros, e usar um Sort do Collections para fazer a arrumação.

Mas, talvez seja melhor, para aprendizado, criar sua própria rotina de organização.