It looks like you need a data structure that requires quick inserts, and also supports fast queries on 2 different keys (name and age).
I would suggest storing two data structures: one sorted data structure (for example, a balanced binary search tree), where the key is age, and the value is a pointer to the Person object, and the other is a hash table where the key is name and the value is pointer to the Person object. Please note that we do not save two copies of the same object.
A balanced binary search tree will provide O (log (n)) inserts and max / min queries, while hastable will give us O (1) (amortized) inserts and search queries.
When we add a new Person, we simply add a pointer to it in both data structures. To request a minimum / maximum age, we can get the object by requesting a BST. To request a name, we can simply request a hash table.
Your question does not ask for updates / deletes, but they are also performed by updating both data structures accordingly.
source share