Seguinte galera, to fazendo um trabalho da faculdade e o professor pediu para criarmos um programa que recebe uma lista de filmes que possuem os seguinte atributos
-Nome do filme
-Nome do diretor
-Ano de lancamento
-Nome da produtora
E para cada atributo desse o usuario pode informar se quer na ordem crescente ou decrescente , entretanto o usuario pode informar apenas um desses atributos(nome do filme, nome do diretor, etc) ou informar varios deles e caso por exemplo existam 2 filmes com o mesmo nome, entao esses 2 eu tenho que ordenar pelo proximo filtro de ordem como por exemplo nome do diretor, etc. Porém já tentei varias maneiras de pensar num algoritmo que não me obrigue a eu fazer 1 IF para cada probabilidade de ordenamento.
Existe alguma maneira de eu construir o o ordenamento sem deixar fixo no código todas as probabilidades possiveis?
Vamos supor que o usuario digite
Nome do Filme - Ordem Crescente
Nome do Diretor - Ordem Decrescente
Eu não queria ter um if assim
if(primeiraOrdem.equals("Nome do Filme") && ordem.equals("Ordem Crescente")){
//percorra a lista
//faça comparacao por nome do Filme e ordena em ordem Crescente
//se existir 2 nomes iguais soma 1 a algum contador para ordenar por outra ordenação
if(contador > 0 ){
if(SegundaOrdem.equals("Nome do Diretor") && ordem.equals("Ordem Crescente"))
// entao ordene por isso
}else if(segundaOrdem.equals("Nome do Diretor") && ordem.Equals("Ordem Decrescente")){
// senao ordena por isso
if(SegundaOrdem.equals("Ano de Lancamento") && ordem.equals("Ordem Crescete")){
// ou por isso
// e por ai vai
}
}
Vocês entenderam meu problema? Isso é 1 entra varias possibilidades e não estou conseguindo pensar numa forma Genérica na qual voce diz que quer ordenar Primeiro por tal campo e ordem ascendente ou descendente, depois caso em algum momento dessa ordenacao existir registros com mesmo nome , entao ordene pelo segundo campo definido e por ai vai. Porém como eu disse o usuario pode informar que o primeiro campo é tal e o ordenamento é ascendente , que o segundo campo é tal e o ordenamento é descendente etc. Se alguém puder pelo menos me dar uma luz, ja seria de grande ajuda, pois estou fritando meus neurônios e não estou conseguindo produzir muita coisa. Desde já agradeço pela atenção. Valeu