Boa tarde
Estou treinando exercicos de fila dinâmica, estou conseguindo armazenar, mas na hora de exibir esta me mostrando endereço de memória no lugar dos dados, na minha fila vou armazenar dados do objeto aluno, vou postar o código se alguém souber onde estou errando e como corrigir fico grato:
Classe Aluno, observem que nessa classe tenho um método final que retorna os dados que preciso é o getDados:
package academico;
import java.util.Arrays;
import javax.swing.JOptionPane;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
public class Aluno {
private String rgm;
private String nome;
private String sobrenome;
private String campus;
private String turma;
private int qtdDisiciplina = 0;
private List<Disciplina> disciplinas = new ArrayList<Disciplina>();
public void setNome(String n){
this.nome = n;
}
public void setRGM(String rgm){
this.rgm = rgm;
}
public void setSobreNome(String sn){
this.sobrenome = sn;
}
public void setCampus(String c){
this.campus = c;
}
public void setTurma(String t){
this.turma = t;
}
public String getNome(){
return this.nome;
}
public String getRGM(){
return this.rgm;
}
public String getSobreNome(){
return this.sobrenome;
}
public String getCampus(){
return this.campus;
}
public String getTurma(){
return this.turma;
}
public void setDisciplina(Disciplina disciplina){
disciplinas.add(disciplina);
}
public Collection<Disciplina> getDisciplinas() { //não importa a coleção interna
return Collections.unmodifiableList(disciplinas); //evita que alguém de fora altere a lista, só essa classe pode mexer
}
public String getDados()
{
return "\nRGM: " + this.getRGM() + "\nNome: " + this.getNome() + "\nSobre Nome: " + this.getSobreNome() + "\nCampus: " + this.getCampus() + "\nTurma: " + this.getTurma() + "\nDisciplinas: " + this.getDisciplinas() + "\n\n";
}
}
Classe node:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Fila;
import academico.Aluno;
public class Node {
private Aluno dado; //Dado a ser armazenado no nó
private Node prox; //referencia para o proximo no
public Object getDado() { return dado; }
public void setDado(Aluno novo_dado) { dado = novo_dado; }
public Node getProx() { return prox; }
public void setProx(Node novo_prox) { prox = novo_prox; }
}
Classe fila:
package Fila;
import academico.Aluno;
import javax.swing.*;
public class FilaDin {
Node comeco;
Node fim;
int total;
public FilaDin()
{
comeco = null;
fim = null;
total = 0;
}
public boolean qIsEmpty(){
return(total ==0);
}
public void enqueue(Aluno x)
{
Node novo = new Node();
novo.setDado(x);
novo.setProx(null);
if(qIsEmpty())
{
comeco = novo;
fim = comeco;
}
else
{
fim.setProx(novo);
fim = novo;
}
total++;
}
public Object dequeue()
{
Object resp = null;
if(!qIsEmpty())
{
resp = comeco.getDado();
comeco = comeco.getProx();
total --;
return resp;
}
return resp;
}
public String qPrint()
{
String saida = "";
if(qIsEmpty())
JOptionPane.showMessageDialog(null, "Fila esta vazia!");
else
{
Node aux;
aux = comeco;
while(aux!=null)
{
saida += aux.getDado().toString() + "\n";
aux = aux.getProx();
}
}
return saida;
}
public int count()
{
int count = 0;
if(!qIsEmpty())
{
Node aux = comeco;
while(aux != null)
{
count++;
aux = aux.getProx();
}
}
return count;
}
public boolean search(Object x)
{
boolean find = false;
if(!qIsEmpty())
{
Node aux = comeco;
while(aux != null)
{
find = aux.getDado().equals(x) ? true : false;
aux = aux.getProx();
}
}
return find;
}
}
O resultado que esta me mostrando na tela é :
academico.Aluno@2bbd86
Como arrumar?