Criei um vetor dentro de minha classe onde ele armazena em 9 posições uma String de caracteres.
Vetor[0] = “a”
Vetor[1] = “b”
Vetor[2] = “c”
Vetor[3] = “d”
Vetor[4] = “e”
.
.
.
Vetor[8] = “x”
Como faço para comparar esse atributo de dois objetos criados a partir classe.
Já tentei o “==”, “equals”, “equalsIgnoreCase” e o “compareTo” e nenhum deles deu certo.
bem, pelo q entendi, vc tem uma classe X e outra Y, onde cada objeto desta classe tem sua instancia do vetor de Strings inicializada... e quer comparar o objeto referenciado pelo vetor de uma classe com o de outra... algo como (se o vetor fosse publico):
X.vetor == Y.vetor
... ja q são objetos, nada além de objetos, vc pode usar o operador == pra tal comparação..., vai retornar true qnd as duas referencias estiverem apontando pro mesmo objeto na memória... se seu vetor for privado (q é o certo de se fazer), e vc ter um método get q retorne ele, pode fazer algo com:
Infelizmente não deu certo.
Na verdade não são duas classe e sim uma classe com dois objetos inicializados.
publicclassNodo{/** Atributos da Classe Nodo **/publicNodoFather;publicNodo[]Son;publicString[]Puzzle;/** Construtores */publicNodo(){}publicNodo(String[]Puzzle){this.Puzzle=newString[Puzzle.length];for(inti=0;i<Puzzle.length;i++)this.Puzzle[i]=Puzzle[i];}/** Métodos **/publicvoidStartNodoExtencao(NodoStart,NodoEnd){while(PartOut(Start,End)!=0){}}publicintPartOut(NodoStart,NodoEnd){intPart=0;if(Start.Puzzle.equals(End.Puzzle))Part++;returnPart;}}
[color="green"][size="11"]* Use a tag [code] em suas linhas de código pra ficarem identados e mais legíveis - matheus[/size][/color]
bem, vc esta querendo comparar objetos quanto seu valor, e não quanto a sua referencia… o método equals() compara Strings, não sei se ele tem alguma sobrecarga para comparar vetores de String…, oq vc quer é comparar todos os valores do vetor do Nodo Start com todos os valores do vetor do Nodo End, onde pra ser verdadeiro tb tem q estar na mesma ordem… não sei se existe algum método q faça isso pra ti, mas nesse caso, terá q fazer a verificação em um laço for, levando em consideração q o tamanho dos dois Puzzles serão sempre iguais:
for ( int i = 0; i < Start.Puzzle.length; i++ )
if ( !Start.Puzzle[i].equals(End.Puzzle[i] ) )
// se for diferente...
else
// se for igual...