Bu neden çalışmıyor? Formula'dan başka hangi bilgilerin gerekli olacağını bir char ve int türünü yapan bir int tarafından verildiğinden emin değilim.Boolean'larla ArrayLists Karşılaştırılması
// returns true if f is identical to this Formula
// e.g. terms = {Term('C',2),Term('H',6)} and f = {Term('C',2),Term('H',6)} would return true
// but terms = {Term('C',2),Term('H',6)} and f = {Term('H',6),Term('C',2)} would return false
public boolean identical(Formula f)
{
int fSize = f.getTerms().size();
if(fSize!=terms.size())
{
return false;
}
else
{
for(int j = 0; j < fSize; j++)
{
Term tester = terms.get(j);
Term fTester = f.getTerms().get(j);
if(fTester == tester)
{
continue;
}
else
{
return false;
}
}
}
return true;
}
N.B. terimler Terim sınıfında yöntemlerini eşittir() ve hashCode() geçersiz kılmak gerek Sürenin iki nesneleri karşılaştırmak için ArrayList
kullanarak bunları karşılaştırabilirsiniz, – Stultuske
iyi bir eşitlik uygulaması yerine, o zaman terim boolean'a dönüştürülemez diyor. – Alfred
Muhtemelen 'if (fTester == tester)' adresleri içeriyor ve içeriği karşılaştırmıyor. Özel nesneleri karşılaştırmak için 'equals 'uygulamasını uygulamanız ve kullanmanız gerekir. –