Dae povo!
Seguinte, eu tive que criar uma classe criando a minha BinaryTree, dai fui adcionar do tipo Aposta, e ele diz que o compareTo não pega.
Eu devo criar um compareTo na classe aposta? se sim, como ordeno pelo nome que tem dentro da aposta?
Classe da BinaryTree
[code]package trabalhofinal;
import java.util.*;
import java.io.Serializable;
public class BinaryTree<Dado extends Comparable> implements Serializable{
class Nodo implements Serializable {
private Nodo pai = null;
private Nodo esq = null;
private Nodo dir = null;
private Dado elem = null;
public Nodo getDir() {
return dir;
}
public void setDir(Nodo dir) {
this.dir = dir;
}
public Nodo getEsq() {
return esq;
}
public void setEsq(Nodo esq) {
this.esq = esq;
}
public Nodo getPai() {
return pai;
}
public void setPai(Nodo pai) {
this.pai = pai;
}
public Dado getElem() {
return elem;
}
public void setElem(Dado valor) {
this.elem = valor;
}
}
private int qtde = 0;
private Nodo refRaiz = null;
private Nodo corrente = null;
public BinaryTreeABP() {}
public BinaryTreeABP(Dado [] vet)
{
for (Dado aux:vet)
addABP(aux);
}
public void addABP(Dado d)
{
Nodo novo;
if (refRaiz == null)
{
novo = new Nodo();
novo.setElem(d);
novo.setPai(null);
novo.setEsq(null);
novo.setDir(null);
refRaiz = novo;
corrente = novo;
qtde ++;
}
else
addABPAux(d, refRaiz);
}
private void addABPAux(Dado d, Nodo n)
{
Nodo novo;
if (n != null)
{
if (d.compareTo(n.getElem()) < 0)
if (n.getEsq() != null)
addABPAux(d, n.getEsq());
else
{
novo = new Nodo();
novo.setElem(d);
novo.setPai(n);
novo.setEsq(null);
novo.setDir(null);
n.setEsq(novo);
corrente = novo;
qtde++;
}
else
{
if (n.getDir() != null)
addABPAux(d, n.getDir());
else
{
novo = new Nodo();
novo.setElem(d);
novo.setPai(n);
novo.setEsq(null);
novo.setDir(null);
n.setDir(novo);
corrente = novo;
qtde++;
}
}
}
}
public Dado searchABP(Dado d)
{
Nodo nAux;
Dado res = null;
nAux = searchNodoValueABP(d, refRaiz);
if (nAux != null)
res = nAux.getElem();
return res;
}
private Nodo searchNodoValueABP(Dado d, Nodo n)
{
Nodo res = null;
if (n != null)
if (d.compareTo(n.getElem()) == 0)
res = n;
else if (d.compareTo(n.getElem()) < 0)
res = searchNodoValueABP(d, n.getEsq());
else res = searchNodoValueABP(d, n.getDir());
corrente = res;
return res;
}
public Vector<Dado> traversalCentral()
{
Vector<Dado> res = new Vector<Dado>();
traversalCentralAux(refRaiz, res);
return res;
}
private void traversalCentralAux(Nodo n, Vector<Dado> res)
{
if (n != null)
{
traversalCentralAux(n.getEsq(), res);
res.add(n.getElem());
traversalCentralAux(n.getDir(), res);
}
}
}[/code]
Classe Aposta
[code]import java.util.*;
public class Aposta{
public String nome;
public int ap1;
public int ap2;
public int ap3;
public int ap4;
public int ap5;
public int ap6;
public int ap7;
public int ap8;
public String numSerie;
public String data;
public Aposta() {
super();
//Gerando numero de série
numSerie = (int) (1+Math.random()*100)+""+(int) (1+Math.random()*100)+""+(int) (1+Math.random()*100)+""+(int) (1+Math.random()*100)+""+(int) (1+Math.random()*100)+""+(int) (1+Math.random()*100);
Calendar cal = new GregorianCalendar();
cal = Calendar.getInstance();
data = ""+cal;
}
public int getAp1() {
return ap1;
}
public int getAp2() {
return ap2;
}
public int getAp3() {
return ap3;
}
public int getAp4() {
return ap4;
}
public int getAp5() {
return ap5;
}
public int getAp6() {
return ap6;
}
public int getAp7() {
return ap7;
}
public int getAp8() {
return ap8;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getNumero() {
String x = ""+ap1+"."+ap2+"."+ap3+"."+ap4+"."+ap5+"."+ap6+"."+ap7+"."+ap8;
return x;
}
public void setNumero(int numero) throws EmptyNumException{
if(numero<=0){
throw new EmptyNumException("Numero não aceito!");
}
else{
if(ap1==0){
ap1=numero;
}
else if(ap2==0){
ap2=numero;
}
else if(ap3==0){
ap3=numero;
}
else if(ap4==0){
ap4=numero;
}
else if(ap5==0){
ap5=numero;
}
else if(ap6==0){
ap6=numero;
}
else if(ap7==0){
ap7=numero;
}
else if(ap8==0){
ap8=numero;
}
else throw new EmptyNumException("Todos os numeros ja apostados!");
}
}
public String getNumSerie() {
return numSerie;
}
public String getData(){
return data;
}
}[/code]