Ich suche nach einer Datenstruktur, die List
implementiert und es mir erlaubt
Um dies zu veranschaulichen, beachten Sie die folgenden drei Listen:
Wie Sie sehen, werden die rote Sequenz ( 42, 88, 76, 60
) und die blaue Sequenz ( 21, 9, 47
) mehrfach verwendet, wobei jede eine unabhängige Liste darstellt, die als Teil anderer Listen freigegeben ist. In Wirklichkeit könnten die Listen viel länger sein.
Die Liste muss nur schreibgeschützt sein, da sie als Rückgabewert verwendet wird. Die Prozedur, mit der die Auflistung der Listen erstellt wird, ist die einzige, die die Liste ändern darf (verwenden Sie add(..)
-Operationen usw.). Durch das Teilen von Teilen der Listen wird es überflüssig, Listenelemente mithilfe von addAll(..)
(das intern System.arraycopy(..)
verwendet) expansiv zu kopieren.
Gibt es irgendwelche Light-Weight List
Implementierungen da draußen, um meine Bedürfnisse zu erfüllen? Oder gibt es einen relativ einfachen Weg, um mich selbst zu implementieren?
Für Iterable
, Set
und Multiset
, Guava haben Sie mit Iterables.concat()
, Sets.union()
und Multisets.sum()
jeweils. Lists
fehlt leider die entsprechende Methode .
Tags und Links java list shared-memory