Primeiro post no fórum, excelente por sinal.
Pesquisei sobre isso e não achei nada, ou talvez eu não saiba bem as palavras chave para buscar.
Seguinte, o usuário entra com o modelo do carro e com seu respectivo consumo de combustivel por litro.
O programa deve retornar a lista de carros de entrada, da ordem do mais econômicos para o menos econômicos.
Usei uma lógica ordenando o consumo com o Arrays.sort e usei dois fors para checar o carro correspondente a cada consumo.
O programa funciona bem, a não ser que tenha dois ou mais carros com o mesmo consumo, quando isso acontece é exibido todos os carros com o mesmo consumo.
O código ficou assim basicamente:
//Entrada de dados
for (i = 0; i < 50; i++) {
System.out.print("Digite o modelo do " + (i + 1) + "º carro (0 para encerrar): ");
carro[i] = teclado.next();
if (carro[i].equals("0")) break;
System.out.print("Digite o consumo do " + carro[i] + " (Km/L): ");
consumo[i] = teclado.nextFloat();
temp[i] = consumo[i];
}
//Ordenação descrescente
Arrays.sort(consumo);
for (int j = 0; j < 50; j++) {
sortconsumo[j] = consumo[49 - j];
}
//Exibição do resultado
for (int j = 0; j < i; j++) {
for (int k = 0; k < i; k++) {
if (sortconsumo[j] == temp[k]) {
System.out.println("Carro: " + carro[k] + " - Consumo: " + sortconsumo[j] + " Km/L - Combustível para 1000 Km: " + (1000 / sortconsumo[j]) + " litros");
}
}
}
Como eu poderia resolver isso? Ou existe alguma forma de conseguir ordenar os nomes seguindo a mesma sequência dos index do consumo?
Espero que tenham conseguido entender meu problema.
Obrigado.