Aktuell:
Am 30. November 2005 ist das Release 1.3.2
erschienen. In dieser Version wurde eine Methode toArray() in
der Klasse BitMathIntSet ergänzt.
Im Rahmen eines Software-Praktikums und einer anschließenden Hiwi-Tätigkeit an unserem Institut haben Siegfried Hodri und Sergej Schütz ein Java-Package entwickelt, das als konsistente und effiziente Erweiterung des Collection Framework aus der Standard-Bibliothek von JDK 1.4 mathematische Mengen (Interface MathSet), Mengen von Mengen (Interface SetOfSets) und Multimengen (Interface Multiset) bietet. Außerdem gibt es eine spezielle Klasse für mathematischen Mengen von integer-Werten (BitMathIntSet). Mathematische Mengen implementieren übliche mathematische Funktionen für Mengen in nicht-destruktiver Weise, Mengen von Mengen besitzen Mengen als Elemente und in Multimengen besitzt jedes Element eine Häufigkeit, mit der es in der Multimenge vorhanden ist. Das Package kann, abgesehen von der Klasse BitMathIntSet, auch mit JDK 1.3 benutzt werden. Ab Version 1.3 ist die Software unter der GNU Lesser General Public License veröffentlich.
Es sind folgende Dateien vorhanden:
powerSet() und
fixedSizeSubsets(Set,int) aus dem Interface
MathSet) bei
Benutzung der Klassen
HashSet, MathSet und
Multiset verglichen werden.
supersets(Set) und
sortedArraySupersets(Set) aus der Klasse
HashSetOfSets
verglichen werden.
javac -classpath mathCollection.jar Comparison.javaAnschließend führt man sie durch folgende Befehle aus:
javac -classpath mathCollection.jar TestPerfSupersets.java
java -classpath mathCollection.jar:. ComparisonUnter Windows muß vor dem Punkt anstatt einem Doppelpunkt ein Semikolon stehen.
java -Xmx300M -classpath mathCollection.jar:. TestPerfSupersets
Zu beachten ist, daß die Testklasse TestPerfSupersets zur
Ausführung 300 Mbytes an Heap-Speicher benötigt.
Das Package wurde unter der Bug Id 4938537 in die Java Bug Parade aufgenommen.
Von denen, die dieses Package nützlich finden, würde ich mich über eine kurze Nachricht freuen. Ich würde sie dann bei der Freigabe des nächsten Releases informieren.