Heiner KückerDisjunct Interval Set Java |
|
|
Home Java-Seite . Weiterentwicklung_Java . WebCam_Demo . JSP WorkFlow . PageFlow FlowControl . Page Flow Engine . Web Flow Engine . Control_and_Command . JSP_Spreadsheet . Kognitions-Maschine . semantisches Netz . Domain Parser . Codegenerator_für . hierarchische . Datenstrukturen . Expression_Engine . Formula_Parser . Thread Preprocessor . State Transition Engine . AspectJ . Java_Explorer . DBF_Library . Kalender_Applet . SetGetGen . BeanSetGet . CheckPackage . LineNumbers . GradDms . Excel-Export . StringTokenizer . JspDoc . JspCheck . JSP-Schulung . Java Server Pages . Struts . Ascii-Tabellen- . Layouter . Ascii-Baum- . Layouter . Ascii-Art-Fluss- . Diagramm- . Parser . AsciiArt . AssignmentMatrix . Layouter . StringSerial . Silbentrennung . JDBC_Schlüssel- . Generierung . bidirektional/ . unidirektional . gelinkte Liste . Java_Sitemap . Generator . XmlBuilder . RangeMap . StringFormatter . VersionSafe . XCopy . JTextField . CommandLine- . ParamReader . Bitmap-Grafik . MultiMarkable- . Buffered- . InputStream . JavaCache . JdomUtil . CollectionUtil . XML Really . Pull Parser . Log-Filter . Remote-Protokoll . Sudoku-Generator . Delegation statt . Mehrfachvererbung . Disjunct . Interval Set . Constraint Class . Code Generator Alaska-XBase++-Seite Projekte Philosophien Techniken Konzepte Sudoku Kontakt / Impressum Links SiteMap Letzte Aktualisierung: 01.09.2009 |
DisjunctIntervalSet.javaMengen-Klasse in Java für nicht überlappende (disjunkte) Intervalle beliebiger Comparable-Objekte mit Java-Generics. Set class in Java for not overlap (disjunct) Intervals of Comparable objects with Java Generics. Die Intervalle sind halb (rechts) offen. The Intervals are half (right) open. Disjunct Interval SetDie Klasse DisjunctIntervalSet enthält Intervalle (Ranges, Bereiche), die sich nicht überlappen dürfen. Die Intervall-Elemente sind Instanzen der Klasse Interval. Als innere Struktur zum Verwalten der Intervalle wird ein java.util.TreeSet verwendet. Ein java.util.TreeSet eignet sich besser als ein java.util.HashSet, weil Hashes darauf beruhen, dass Werte, die sich nur wenig unterscheiden (dicht beieinander liegen) unterschiedliche Hash-Werte haben. Bei der Arbeit mit java.util.Comparator in einer Baum-Struktur ist es dagegen möglich, sich dem gesuchten Wert (in diesem Fall Intervall) schrittweise anzunähern. Dazu bietet die intern verwendete Klasse java.util.TreeMap für die End-Punkte (aussenliegend) der Intervalle die Methode TreeMap#tailMap(Object) sowie TreeMap#headMap(Object), mit welchen ein bestimmter Ausschnitt (View) aus den Elementen im java.util.TreeSet gebildet werden kann.
IntervalleDie Angabe des Intervalls erfolgt rechts offen, also als End-Wert des Intervalls wird der erste Wert ausserhalb des Intervalls angegeben. Siehe dazu bitte Wikipedia Intervall_(Mathematik) Beschränkte_Intervalle. Dies hat folgende Vorteile: 1. Bei der Benutzung der Intervalle für Sub-Strings sind die Intervalle kompatibel zur Methode String#substring(int, int). 2. Bei unterschiedlichen Rastern bleiben die Intervalle kompatibel, Beispiel: Angenommen, es werden innenliegende Grenzen beim Intervall verwendet (abgeschlossenes Intervall). Im Stunden-Raster wird ein Intervall für einen Tag von Stunde 0 bis Stunde 23 angenommen. Beim Ändern des Rasters auf Minuten entsteht ein Intervall von 00:00 Uhr bis 23:00 Uhr, was falsch ist. Bei rechts offenem Intervall von 00:00 Uhr des ersten Tages bis 00:00 Uhr des folgende Tages stimmt das Intervall bei jedem beliebigen Raster wie Stunde, Minute, Sekunde oder feiner.
Das Programm ist frei und Open Source (free and Open Source). Download der Quelldateien Sourcecode DisjunctIntervalSet.zip
Achtung: Erweiterungen und Fixes stelle ich ohne Historie
und ohne Ankündigung hier bereit. Lizenzbedingungen:
Die Programme, Quelltexte und Dokumentationen können ohne
irgendwelche Bedingungen kostenlos verwendet werden. |