Frage

Viele Leute haben das gesagt ArrayList.removeAll ist sehr langsam mit großen Arrays.

Dies Artikel Bietet zwei optimierte Lösungen für die ArrayList.removeall -Geschwindigkeit, erfordert jedoch die Implementierung in der Klasse selbst und kann nicht extern als Fix verwendet werden.

Gibt es eine Möglichkeit, diese Art von Korrektur des Kopierens des ArrayList -Quellcodes und verwenden Sie meine eigene Version davon?

EDIT: Ich nehme an, ich sollte mein Bedürfnis nach diesem Bedürfnis hinzufügen, da es wahrscheinlich eine Möglichkeit gibt, das zu tun, was ich will, ohne arrayList.removeall.

Ich habe zwei Listen von herum 70,000 longs jeder. Sie sind fast identisch, aber eine Liste hat ein paar weitere Zahlen, die die zweite Liste nicht hat, und ich möchte sie finden. Ich weiß nur, wie ich sie findet, um sie zu tun first.removeAll(second) Um den Unterschied zu finden. Gibt es eine andere Art und Weise?

War es hilfreich?

Lösung

Was ist mit einer Datenstruktur mit einer viel besseren Entfernungszeit wie Hashset oder Treeset? Der große Grund, eine ArrayList zu verwenden, liegt also auf die schnelle Zugriffszeit O (1), um auf Datensätze zuzugreifen. Aber wenn Sie versuchen, den Unterschied festzulegen, sollten Sie vielleicht Sätze verwenden. Nur ein Gedanke.

Andere Tipps

Sie können eine Unterklasse von erstellen ArrayList um diese Methode (und möglicherweise andere) zu optimieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top