Fila encadeada

3 respostas
G

Olá pessoal, será que alguem pode me dizer se existe como fazer uma fila encadeada dinamica em java?
Deixe-me explicar oque preciso fazer, preciso simular um escalonamento de processo do tipo SJF, ou seja processos d menor duração tem prioridade, por isso não vale a pena usar um vector ja que a cada processo novo na fila eu teria q ordena-la td denovo, gastando tempo de processamento, se fosse como em c, por exemplo, eu so percorreria a fila e inseria o nó na prosição correta, alguem sabe se tem como fazer isso em java?

Muito obrigado.

3 Respostas

A

Você pode usar um TreeSet com um Comparator.

Você cria uma classe que implementa Comparator que vai receber dois processos e ver qual tem menor duração/maior prioridade.

Depois instancia um TreeSet com uma instância desse Comparator. Seu TreeSet vai ficar ordenado.

maxguzenski

como o amigo agasea disse:

Set s = new TreeSet(new Comparator() {
  public int compare(Object o1, Object o2) {
       // é necessario converter para o tipo da classe correta
       // se < 0 o1 é menor, se =0 sao iguais, se > 0 o2 é menor 
       return o1.getPrioridade() - o2.getPrioridade(); 	
  }			
});
		
// adiciona os objetos em qualquer ordem, o Comparator vai tratar a ordem correta
s.add( ... );
s.add( ... );
s.add( ... );

mais barbada que em C, nao ?

G

putz mto obrigado pessoal, valeu mesmo, eu tava mo perdido aqui, brigadão mesmo.

Realmente é bem mais simples que em C, hehehe

obrigado novamente.

[]´s

Criado 22 de setembro de 2006
Ultima resposta 22 de set. de 2006
Respostas 3
Participantes 3