Ну, во-первых, ваш код ничего не будет делать, пока вы не установите больше true на начальном этапе. В противном случае вы просто получите исключение нулевого указателя при попытке вызвать tostring для нулевого объекта.
Кроме того, не создавайте массив person в цикле while, иначе он будет каждый раз сбрасываться и уничтожать то, что, как представляется, является целью хранения всех людей.
Также, учитывая объекты foo и bar класса zoo, вы не можете просто сделать:
foo.compareto(bar);
Это было бы как строка кода типа
-4;
Java это не нравится.
Таким образом, отвечать на ваш вопрос, используя сравнение с методами, похоже на тесты на истинность преформ. Например
if(foo<bar)
/*Do something*/;
Кроме того, вы можете использовать .compareto (), чтобы сравнивать объекты, а не просто ссылки. Таким образом, вы можете определить, какой объект типа zoo больше, foo или bar, сравнивая их со сравнением с. API для Compareto предусматривает, что если возвращается 0, то они равны, если возвращается положительное число, первое больше, а если возвращается отрицательное число, второе больше. Итак:
if(foo.compareto(bar) >0)
/* foo is greater*/;
else if(foo.compareto(bar) = 0)
/* foo and bar are equal*/;
else
/* bar is greater*/;