Конечно, эту задачу можно решить самым легким способом: построчно создавать объекты, присваивая им имена. Само решение задачи я понял, но есть вопрос: в комментариях хотел найти более оптимизированные варианты решения и наткнулся на этот:
Zerg[] zerg = new Zerg[10];
        for (int i = 0; i < 10; i++)
        {
            zerg[i] = new Zerg();
            zerg[i].name = Integer.toString(i);
        }
Не очень понимаю первую строку. Мы создаем ссылочную переменную на массив объектов, который создаем дальше? И предпоследняя строка тоже вызывает вопросы. "Integer.toString(i)". Прошу объяснить. Спасибо заранее.