Heiner Kücker

Bidirectional Linked List und
Unidirectional Linked List
in 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:
20.08.2005

Bidirectional Linked List und Unidirectional Linked List

Einfach (unidirektional) oder doppelt (bidirektional) verbundenen Listen sind eine Grundstruktur der Informatik. Ich habe aber die Erfahrung gemacht, dass es immer wieder mühevoll ist, diese Listen-Strukturen vollständig und fehlerfrei zu implementieren.
Deshalb stelle ich hier diese Java-Klasse zur freien Verwendung (Open Source) bereit.
Es gibt Operationen zum Anhängen (add), Einfügen (add mit index), Löschen (remove) und Verschieben (hoch, runter, an den Anfang, an das Ende) (moveUp, moveDown, moveTop, moveBottom) der Einträge (entrys).

Die bidirektionale (doppelt verbundene) Liste ist als Baustein eines LRU-Cache (least recently used) gedacht.

Alternativ ist auch der Aufbau eines LRU-Cache mit der JDK-Klasse java.util.LinkedHashMap möglich.
Dazu muss die Methode removeEldestEntry überschrieben werden. Hier ein Beispiel aus der JDK-Dokumentation:

    private static final int MAX_ENTRIES = 100;

    protected boolean removeEldestEntry(final Map.Entry eldest)
    {
       return size() > MAX_ENTRIES;
    }

Download der Quelldateien LinkedList.zip



Achtung: Erweiterungen und Fixes stelle ich ohne Historie und ohne Ankündigung hier bereit.
Deshalb am besten immer die letzte Version runterladen.

Lizenzbedingungen:

Die Programme, Quelltexte und Dokumentationen können ohne irgendwelche Bedingungen kostenlos verwendet werden.
Sie sind Freeware und Open Source. Für Fehler und Folgen wird keinerlei Haftung übernommen.

Hinweise zur Fehlerbeseitigung und Verbesserung sind mir willkommen.

Ich freue mich auch über Feedback bezüglich der erfolgreichen Verwendung meiner Sourcen.

Bei Fragen helfe ich gern mit Hinweisen oder zusätzlicher Dokumentation, falls ich dafür Zeit habe.

Suchworte:

Java, bidirectional linked list, unidirectional linked list, two-way linked list, doubly linked list, singly linked list, double linked list, single linked list, data structure, doppelt verbundene Liste, einfach verbundene Liste, verschieben, vertauschen, move, change, LRU-Cache (least recently used cache)