Zalecam użycie metody Collections.sort(...) do posortowania listy animals, zamiast kopiowania jej elementów do tablicy.
A jeśli nie chcesz aby obiekty zostały posortowane wewnątrz mZooData to warto użyć konstruktora kopiującego ArrayList<Animal> animals = new ArrayList<Animal>(mZooData.getAnimals());

Swoją drogą może warto pomyśleć, czy nie wydajniej byłoby przechowywać już na wstępie posortowane dane w mZooData żeby nie trzeba było ich za każdym razem sortować.