2016-12-20 5 views
2

Meine Anwendung ist sehr einfach und sieht aus wie Caching so vielleicht etwas wie Guava ist nützlich, aber ich benutze Scala und ziehen es vor, Guava nicht ziehen, wenn ich nicht brauchen.Split scala treeset von geordneten Objekt

AAA's kommen meistens im Set in aufsteigender Reihenfolge, aber der Indexwert könnte niedriger sein als das, was bereits existiert. Was ich brauche, ist eine einfache Funktion, die Elemente entfernt, die niedriger als ein bestimmter Index sind (ein Double). Dies muss nicht genau sein, solange nichts über dem Index gelöscht wird. Ich kann dies mit O (log (n)) Komplexität tun, aber da ich immer am Ende der Menge (oder Kopf) beginnen kann, denke ich, dass es effizienter durchgeführt werden kann. Offensichtlich bin ich schnell mit dem Zwischenspeichern von Bibliotheken fertig, aber diese Indizes sind nicht zeitbasiert und ich brauche bis zu Millionen dieser Sätze in meinem Programm (daher der Wunsch, schneller zu gehen als O (log (n))).

Einige Hilfe und Richtung zu möglichen Lösungen werden sehr geschätzt. Selbst wenn dies bedeutet, dass O (log (n)) die beste Leistung bedeutet.

Antwort

0

Auch wenn es nicht wirklich die Lösung die ich suchte ich denke, dies ist eine ok Lösung sein wird:

aaaSet = aaaSet.dropWhile(aa => aa.index < 1.3)