The descendingKeySet() method of NavigableMap returns a
NavigableSet in which the elements are stored in reversed order as
compared to the original key set.
The returned view is internally represented by the original KeySet
of NavigableMap. Therefore any changes to the descending set also
get reflected in the original set.
But it is not recommended to remove elements directly from the key
set. We should use the Map.remove() method.
The descendingMap() method of NavigableMap returns a
NavigableMap which is an inverse view of the original Map. The
order of the elements in this view are in reverse order of the
elements in original map. Any changes to this view are also
reflected in the original map.
https://www.geeksforgeeks.org/java-util-treemap-descendingmap-descendingkeyset-java/