So ganz elegant leider nicht. Es gibt zwar die Methoden headMap und tailMap, um den ersten bzw. letzten Teil einer Map rauszuladen. Aber mit zwei Einschränkungen:
- Du erhälst eine Teilmap und keine Kopie. D.h. Änderungen in der Original-Map sind auch in den Teilmaps sichtbar
- Das Kriterium, ab wo/von wo die Teilmap gebildet werden soll, ist der gewünschte Key und kein Index.
Oder auch gut: Lässt sich irgendwie das k. Element über eine Zahl ansprechen?
Das wäre wie ein Index. Sets und Maps haben keinen Index (im Gegensatz zu Arrays und Listen).
Ich hab mal nur so aus Spaß eine IndexedSortedMap geschrieben. Die Entries habe ich intern in einem Array gespeichert. Dadurch konnte ich neben dem Key auch einen Index für den Zugriff verwenden. Ich habe beim Put dafür gesorgt, dass der Array immer sortiert war und beim Get mit binary Search gearbeitet (immerhin noch besser als den Array durchzuiterieren). Aber, das war erstens ne Schweinearbeit, zweitens hast Du dann keinen Tree und drittens war meine fertige Implementierung ungefähr 100 mal langsamer beim Zugriff als die TreeMap.