Comparar dados que estão em uma pilha

3 respostas
J

Então pessoal estou querendo fazer um grid de largada, onde os pilotos que tem o melhor tempo irão para o topo da pilha.

Esse é o meu código

Stack<String> pilotos = new Stack<String>();


        int n1,n2;
        String nome, tempopiloto, pergunta;

        pergunta=JOptionPane.showInputDialog("Digite 1 para cadastrar o tempo e o piloto");
        n2=Integer.parseInt(pergunta);

        if (n2==1){
            for ( int i =2; i>0; i--){
            nome = JOptionPane.showInputDialog("Informe o nome do Piloto");
            tempopiloto = JOptionPane.showInputDialog("Informe o Tempo");

            pilotos.push(nome +"  "+tempopiloto);

        } 
            System.out.println(pilotos);
        }



    }
}

Enquanto o cara vai inserindo tempo e o piloto os que tem o melhor tempo vão sempre para o topo.

Será que alguém pode ajudar a fazer essa comparação e depois jogar para o topo da pilha?

3 Respostas

Rodrigo_Sasaki

Eu acho que uma PriorityQueue vai te atender bem melhor nessa situação.

J

Vc poderia me dar um exemplo amigo, de como isso se encaixa no meu problema?

Nunca usei a PriorityQueue, mas é sempre bom conhecer novos métodos

Rodrigo_Sasaki

A fila de prioridades, como o nome diz, organiza os seus elementos de acordo com um critério de prioridade, no seu caso o critério é o menor tempo na volta. Então você implementa a comparação dessa forma, através de Comparable ou Comparator, e no momento da inserção de um novo elemento, a própria coleção irá se organizar de forma que o elemento com maior prioridade fique na frente.

Criado 21 de março de 2014
Ultima resposta 21 de mar. de 2014
Respostas 3
Participantes 2