Почему это не работает? Я не уверен, что другая информация, которую вам потребуется, помимо формулы, задается символом char и int, который создает тип Term.Сравнение ArrayLists с булевыми
// 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;
}
нотабене термины - это имя ArrayList
может быть, потому что вы сравниваете объектов с помощью оператора ==, вместо хорошей реализации равна – Stultuske
проклятый, тогда он говорит, что термин не может быть преобразован в логическое. – Alfred
Возможно, потому что 'if (fTester == tester)' сравнивает адреса, а не контент. Вам нужно реализовать 'equals' и использовать его для сравнения пользовательских объектов. –