PriorityQueue VS. LinkedList (ambas implementam a interface Queue)

Ambas as classes concretas (PriorityQueue e LinkedList) implementam a interface Queue, porém…

 

O objeto inserido na PriorityQueue tem que implementar Comparable

 
 

import java.util.Queue;

import java.util.PriorityQueue;

 
 

public class Teste {

public static void main(String[] args){

Queue q = new PriorityQueue();

 
 

q.offer(new Pessoa(“pedro”));

q.offer(new Pessoa(“henrique”));

q.offer(new Pessoa(“lorena”));

q.offer(new Pessoa(“juliane”));

 
 

while (q.size() > 0) System.out.println(q.poll());

}

}

 
 

class Pessoa implements Comparable<Pessoa>{

public String nome;

Pessoa(String nome){

this.nome = nome;

}

 
 

public int compareTo(Pessoa p){

return this.nome.compareTo(p.nome);

}

 
 

public String toString(){return this.nome;}

}

Já com a LinkedList e interface Queue podemos implementar FIFO sem se preocupar se o item é ordenavel ou classificavel.

 
 

import java.util.Queue;

import java.util.LinkedList;

 
 

public class Teste {

public static void main(String[] args){

Queue<Pessoa> qu = new LinkedList<Pessoa>();

// first in

qu.add(new Pessoa(“pedro”));

qu.add(new Pessoa(“juliane”));

qu.add(new Pessoa(“kike”));

qu.add(new Pessoa(“lolo”));

 
 

// first out

System.out.println(qu.poll()); // pedro

System.out.println(qu.poll()); // juliane

}

}

class Pessoa {

String nome;

Pessoa(String nome){

this.nome = nome;

}

public String toString(){return this.nome;}

}

Esta entrada foi publicada em Arrays & Colletions com as etiquetas . ligação permanente.

4 respostas a PriorityQueue VS. LinkedList (ambas implementam a interface Queue)

  1. Daniel Souza diz:

    Olá Pedro!

    Gostei da explicação, olha que eu pesquisei em vários sites. Gostaria de saber onde eu posso encontrar mais informações sobre o tema. Já olhei a documentação Java mas não ficou muito claro pra mim. Você tem alguma indicação?

    Abraço

    Gostar

    • pedroabs diz:

      Então Daniel, na verdade há vários livros de Java por ai, um deles, que eu estudei para prestar a minha certificação foi o livro da Kathy Sierra [SCJP Sun Certified Programmer for Java 6 Exam 310-065]. Não me lembro ao exato se havia uma explicação tão específica no livro (a respeito do assunto que você colocou acima), porém grande parte das dúvidas que sanei ao longo do meu processo de estudo foi desta forma com você vê neste post, ou seja, experimentando, testando, olhando o comportamento e também olhando a documentação (javadoc) das classes.

      Acredito que há dúvidas muito especificas que não há outra maneira de se solucionar a não ser realizando pequenos testes e tirando conclusões.

      Objetivamente falando, eu não tenho nenhuma recomendação de livro que vá solucionar uma dúvida específica … acho que o caminho, realmente é ler um bom livro que te dê ma noção geral do assunto, depois ler a documentação (javadoc) da classe e realizar pequenos testes.

      Espero ter te ajudado e estou a disposição para quaisquer outras discussões !!!

      Um grande abraço e obrigado por ler o meu blog !

      Gostar

    • pedroabs diz:

      Daniel;

      Por favor, de uma olhada também em:

      java.util.LinkedList Testes

      Um abraço !

      Gostar

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s