Olá, pessoal estou com o seguinte problema quando crio instancias em de uma classe em tempo de execução.
Tenho um arvore binária de busca que armazena em seu nó uma matiz de pxq e tenho que criar vários nós em minhas arvore com matrizes deferentes, mas quando eu crio uma instancia de um no dentro de um for ele insere na arvore a mesma instancia da matriz n vezes. Veja abaixo como ta o código.
for (String string : main.listaNo) {
No no = new No();
String[][] aux = new String[contLinhaDigitoImagem][contColunaDigitoImagem];
int posicao = 0;
no.verificador = string.replace(" ", "");
String[] a = string.split(" ");
for (int i = 0; i < contLinhaDigitoImagem; i++) {
for (int j = 0; j < contColunaDigitoImagem; j++) {
aux[i][j] = a[posicao];
posicao++;
}
}
no.setMatriz(aux);
no.setContColuna(contColunaDigitoImagem);
no.setContLinha(contLinhaDigitoImagem);
arvore1.inserirUnico(no, arvore1.getRaiz());
}
class No {
private int frequencia;
private No direita;
private No esquerda;
public String[][] matrix;
private int contLinha;
private int contColuna;
private String caracteres;
public String verificador;
}
public void inserirUnico(No novo, No anterior) {
this.contNos++;
this.contFrequencia++;
this.alturaArvore++;
this.contFrequencia += (this.contNos % 2);
VerificaUnico(novo, anterior);
if (this.existe == false) {
inserir(novo, anterior);
}
this.existe = false;
}
public String mostraNo(No no) {
return no.mostraMatriz();
}
public No inserir(No novo, No anterior) {
if (this.raiz == null) {
raiz = novo;
return null;
} else {
if (anterior != null) {
if (novo.getValorString().compareTo(anterior.getValorString()) < 0)
anterior.setEsquerda(this.inserir(novo,
anterior.getEsquerda()));
else {
anterior.setDireita(this.inserir(novo,
anterior.getDireita()));
}
} else {
anterior = novo;
}
return anterior;
}
}
