This is not really possible as HashMaps are specially an unordered list.
You could use java.util.LinkedHashMap which uses insertion order but what I think you really want here is TreeMap which will support natrual ordering of the elements within it.
If you add a Comparator which spits out the oldest dog then the TreeMap sort them in that order for you.
A TreeMap is an implementation of the Map interface so you interact with it in the same way as you do just now.
TreeMap<Dog, List<String>> dogsAndDescriptions = new TreeMap<Dog, List<String>>();
Would instantiate an instance of your (don't capitalise your variables) dogsAndDescriptions Map. What you can do as part of the TreeMap constructor is pass in a Comparator which will govern how your dogs get sorted as keys, or make Dog class extend Comparable and override the compareTo method basically something like
class Dog implements Comparable<Dog>{
//somecode
@Override
public int compareTo(Dog o) {
return birthday.compareTo(o.birthday);
}
}
So you can see that will compare dogs based on their birthday. I'll link to an example here as how Comparators work is a different question I think. But that's 2 ways to sort them.