Gravar titulos em ordem alfabetica (lista encadeada)

Estou fazendo um trabalho com listas, e preciso que tudo que for colocado nela seja gravado em ordem alfabética, queria não utilizar o metodo “Arrays.sort(Titulos)”,

public class RegistraEbook {


String[] Titulos = new String[1000];
private Ebooks[] ebooks = new Ebooks[1000];
private Autores[] autores = new Autores[1000];
private Editora[] editora = new Editora[1000];
private int contEbooks = 0 ;
String ebookCad = null;
int cont = 0;

	
	public void menuCadastro() {
		Scanner leitor = new Scanner(System.in);
		System.out.println("3 - Cadastrar titulos");
		System.out.println("4 - Mostrar titulos");
		

		int op = leitor.nextInt();
		
		while(op != 0) {
			
			switch(op)
			{
			
			case 3:
				
				System.out.println("Titulo: ");
				leitor.nextLine();
				String titulo = leitor.nextLine();
				Titulos[cont] = titulo;
				cont++;	
			
				
				break;
				
					 
				
				
			case 4:
				for (int i = 0; i < cont; i++) {
					System.out.println(Titulos[i]);
					
				}
				break;

Se não quer ordenar, então troque o array por um TreeSet, que já insere os elementos na ordem correta:

Set<String> titulos = new TreeSet<String>();

// adiciona um título
String titulo = leitor.nextLine();
titulos.add(titulo);

O método add de um TreeSet já adiciona o elemento na posição correta, levando em conta a ordem entre os demais elementos já existentes.

Ainda tem a vantagem de aumentar o tamanho conforme a necessidade, assim você não precisa criar um array com mil posições (se precisar de menos, será desperdício, e se precisar de mais, terá que criar outro array maior).

Também sugiro que siga as convenções de nomenclatura da linguagem, que prefere nomes de variáveis começando com letra minúscula.

1 curtida