Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Eigentlich ganz einfach: Irgendeine in Java 6 vorhandene Datenstruktur in die ich ein "<Long>offset, <Int>size" stecken und nach dem ersten Parameter sortieren kann.
Zzt. löse ich das über eine HashMap wo ich mir die Keys in eine ArrayList geben lasse, die sortiere und mit dem Ergebnis wieder über die ursprüngliche Hashmap iteriere.
Wenn du einen schnellen Zugriff auf die Schlüssel benötigst, dann schon. Eine TreeMap hält (alle) ihre Schlüssel glaub ich auch nicht geordnet. Alternativ mit zwei Datenstrukturen arbeiten, z.B. einer Liste und einer Map
Edit: Doch, "based NavigableMap implementation. The map is sorted according to the natural ordering of its keys, or by a Comparator provided at map creation time, depending on which constructor is used." Hab mich vertan
TreeMap impementiert NavigableMap, aber mir erschliesst sich nicht so recht, wie man eine TreeMap sortiert?
Etwa wirklich die TreeMap nach List casten und nach Collections.sort(...) stopfen? Edit: das geht ja gar nicht, obwohl Eclipse da recht grosszügig war.
Eine TreeMap ist von sich aus schon sortiert. Fügst du ein neues Element ein, wird es entsprechend einsortiert.
Dafür müssen deine Element Comparable implementieren, oder du gibst der TreeMap einen Comparator mit.
Eine TreeMap ist von sich aus schon sortiert. Fügst du ein neues Element ein, wird es entsprechend einsortiert. Dafür müssen deine Element Comparable implementieren, oder du gibst der TreeMap einen Comparator mit.
Ok, wird Long schon tun. Wie iteriere ich jetzt vom kleinsten bis zum grössten Long durch und komme an Long wie Integer? "get(i)" liefert ja kein Entry zurück.
Danke für die Hilfe, mir ist eben eingefallen dass ich neben dem aktuellen Long noch den nächsten brauche.
Große Geschichte kurz gefasst: Ich will hier einen byte-Cache prüfen der über eine Liste der Sorte "offset, length" verwaltet wird. Die Prüfroutine soll in dieser Teilprüfung nichts anderes machen als offset+length gegen den nächsten offset auf Überschneidung zu prüfen.
Dafür bräuchte ich halt irgendeine Liste, die nach <offset> sortiert ist und wahlfreien Zugriff (zumindest auf den aktuellen und nächsten Offset) ermöglicht.
Gerade weil ich in die API reingeschaut habe wird mir eher übel als besser.
Was passiert, wenn im TreeMap zwei Long mit gleichem Wert sind und ich higherEntry aufrufe? Ich bekomme vermutlich den nächst grösseren Key ohne den gleichen (vorhandenen) Key zu fetchen.
Ist mir alles zu Joker für die Prüfroutine, ich lass das jetzt so wie es ist.
????? Du willst den Long-Value als Key verwenden bzw. du verwendest ihn als Key! Dann kann es keine(!) zwei gleichen Schlüssel (also Long-Values) geben! Per Definition existiert in einer Map jeder Schlüssel (normalerweise) nur einmal!