Eine Erweiterung des Java Collection Framework

This page is also available in English.

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:

Um die beiden Testklassen Comparison und TestPerfSupersets auszuprobieren, kopiert man diese wie auch das Java-Package in das aktuelle Verzeichnis und übersetzt sie mit folgenden Befehlen:
javac -classpath mathCollection.jar Comparison.java
javac -classpath mathCollection.jar TestPerfSupersets.java
Anschließend führt man sie durch folgende Befehle aus:
java -classpath mathCollection.jar:. Comparison
java -Xmx300M -classpath mathCollection.jar:. TestPerfSupersets
Unter Windows muß vor dem Punkt anstatt einem Doppelpunkt ein Semikolon stehen.

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.


Dietmar Lippold, dietmar.lippold@informatik.uni-stuttgart.de; Institut für Intelligente Systeme
Letzte Änderung: 30. November 2005