Похоже, вам нужна структура данных, которая требует быстрой вставки, а также поддерживает быстрые запросы на 2 разных ключа (имя и возраст).
Я бы предложил сохранить две структуры данных, одну - отсортированную структуру данных (например, сбалансированное двоичное дерево поиска), где ключ - это возраст, а значение - указатель на объект Person, а другую - хеш-таблицу, гдеключ - это имя, а значение - указатель на объект Person.Обратите внимание, что мы не храним две копии одного и того же объекта.
Сбалансированное бинарное дерево поиска будет обеспечивать вставки O (log (n)) и запросы max / min, а hastable даст нам O (1)(амортизируется) вставляет и ищет.
Когда мы добавляем новую персону, мы просто добавляем указатель на нее на обе структуры данных.Для запроса минимального / максимального возраста мы можем получить объект, запросив BST.Для запроса имени мы можем просто запросить хеш-таблицу.
Ваш вопрос не запрашивает обновления / удаления, но они также выполнимы путем соответствующего обновления обеих структур данных.