두 개의 arrayLists<myObject>
이 있습니다. 여기에서 myObject
은 내가 만든 사용자 지정 클래스의 개체입니다. equals()
메서드를 사용하여 해당 arrayLists를 비교할 수 있기를 원합니다.두 개의 arrayList <myObject>이 있는데,이를 올바르게 비교할 수 있도록 equals()를 사용할 수 없습니다. 왜?
답변을 읽고 답한 후 int[]
과 같은 특정 개체는 동일한 것을 참조 할 때 equals()
메서드로만 간주됩니다.
수정하려면 내 사용자 지정 개체에서 equals 메서드를 재정의했습니다. 내 객체는 3 개의 속성 (모든 기본 유형)을 가지므로, my equals 메소드는 이제 모든 3 개의 속성이 비교 된 객체의 속성과 같으면 true
을 반환하고 그렇지 않으면 false를 반환합니다. 그러나 arraylists를 비교하는 것은 여전히 효과가 없습니다. 내가 도대체 뭘 잘못하고있는 겁니까?
코드를 게시하는 대신 실례합니다. 변수 및 이름이 영어가 아니기 때문에 설명합니다.
편집 : 여기 코드가 있습니다. Compra
은 내 맞춤 클래스입니다. cantidad
, concepto
및 id
이 해당 속성입니다. 당신이 코드를 게시하지 않은 것처럼
@Override
public boolean equals(Object obj) {
boolean result = true;
if (obj == null) {
result = false;
}else{
Compra comprobada = (Compra) obj;
if(!(this.id == comprobada.getId())){
result = false;
}
if(!(this.cantidad == comprobada.getCantidad())){
result = false;
} if(!this.concepto.equals(comprobada.getConcepto())){
result = false;
}
}
return result;
}
"여전히 작동하지 않는다"는 것을 의미합니까? 코드 게시, 예상 작업 및 실제로 수행 할 작업을 게시하십시오. –
영어 변수가 걱정된다면 문제를 나타내는 SSCCE *를 영어로 쓰십시오. 귀하의 서면 설명만으로 우리를 도와 줄 수는 없습니다. –
@StephenCI가 질문을 업데이트하여 일부 코드를 포함 시켰습니다. 그것은 저의 equals 메소드입니다. 객체로 구성된 두 명의 arraylists를 비교하려고 시도하지만 결과가 틀렸을 때 결과는 false입니다. – kace91