|
18.02.2010
Listen
Die Liste ist eine einfache Datenstruktur, mit der sich Werte in Form einer Liste speichern lassen. Damit ist eine Liste um ein Vielfaches leistungsfähiger als eine gewöhnliche Variable mit der sich lediglich 1 Wert speichern lässt. In der Liste können nicht nur feste Werte, sondern auch Variablen, Konstanten und sogar Objekte gespeichert werden.
Listen sind enorm vielseitig einsetzen und werden daher häufig verwendet. Beispielsweise können Sie damit einem anderen Objekt gleich mehrere Werte auf einmal übergeben, obwohl nur 1 Parameter (Übergabewert) vorgesehen ist, was z.B. beim Aufruf eines neuen Fensters oder eines Reports sehr vorteilhaft sein kann. Darüber hinaus liefern viele Funktionen in XDEV 2 eine Liste als Ergebnis, z.B. wenn Sie einen bestimmten Datensatz aus einer Virtuellen Tabelle auslesen möchten.
Jeder Wert in der Liste besitzt einen eindeutigen Index. Der Index der Liste beginnt immer mit 0 und wird immer lückenlos geführt, d.h. nach dem Löschen eines Wertes wird der Index aller nachfolgenden Werte automatisch angepasst.

» Objekt der Klasse XdevList | XDEV NLS: XdevListe «
Die Liste ist ein Objekt im Speicher, das mit Hilfe einer Variable angesprochen wird. Bei der Definition wird ein Listen-Objekt von der XDEV-Klasse XdevList | XDEV NLS: XdevListe erzeugt.
» Keine Dimensionierung nötig «
Die Liste kann grundsätzlich beliebig viele Einträge sowie Werte jeden Typs aufnehmen. Eine Dimensionierung ist jedoch nicht notwendig, da die Liste den benötigten Speicher automatisch reserviert.
» Zugriff mit Methoden «
Der Zugriff auf die Liste erfolgt immer mit Hilfe spezieller Methoden, die Ihnen die XDEV-Klasse XdevList | XDEV NLS: XdevListe zur Verfügung stellt, z.B. für das Hinzufügen oder Löschen eines Wertes.
1
2
|
XdevList liste = createList( );
liste.add( );
|
|
1
2
|
XdevList liste = createList( )
liste.add( )
|
|
1
2
|
XdevListe liste = erzeugeliste( );
liste\hinzufügen( )
|
|
Tipp: Eine Übersicht über alle Methoden der Liste erhalten Sie über die Auto-Vervollständigung des Code-Editors. Definieren Sie dazu eine Liste, geben Sie dann in der nächsten Codezeile die Listen-Variable ein und unmittelbar danach einen Punkt | XDEV NLS: Backslash.
|
Beispiele für den Umgang mit Listen:
Umgang mit Listen
|
Beispiele
|
Liste erzeugen
|
Eine Liste wird nicht wie eine Virtuelle Tabelle per Assistenten angelegt, sondern wie eine gewöhnliche Variable im Code definiert. Bei der Definition muss der Listen-Variable sofort eine neue, leere Liste zugewiesen werden, welche mit dem Schlüsselwort create | XDEV NLS: Erzeuge erzeugt wird. Dabei wird ein Objekt von der Klasse XdevList | XDEV NLS: XdevListe erzeugt. Der Zugriff erfolgt dann mit Hilfe einer Variable, die auf das jeweilige Listen-Objekt im Speicher zeigt.
1
|
XdevList liste = createList( );
|
|
1
|
XdevList liste = createList( )
|
|
1
|
XdevListe liste = erzeugeliste( );
|
|
|
Wert hinzufügen
|
Mit Hilfe der Methode add( ) | XDEV NLS: hinzufügen ( ) lassen sich der Liste beliebige Werte hinzufügen, auch Objekte. Jeder Wert erhält automatisch einen eindeutigen Index der mit 0 beginnt.
1
2
|
XdevList liste = createList( );
liste.add("Eintrag");
|
|
1
2
|
XdevList liste = createList( )
liste.add("Eintrag")
|
|
1
2
|
XdevListe liste = erzeugeliste( );
liste\hinzufügen("Eintrag")
|
|
|
Wert lesen
|
Mit Hilfe der Methode get( ) | XDEV NLS: hole ( ) können Sie Werte aus der Liste auslesen. Der Zugriff auf den Wert erfolgt immer durch die Angabe des Index.
1
2
|
String wert;
wert = liste.get(0);
|
|
1
2
|
String wert
wert = liste.get(0)
|
|
1
2
|
Zeichenkette wert
wert = liste\hole(0)
|
|
|
Wert löschen
|
Mit der Methode remove( ) | XDEV NLS: lösche ( ) können Sie Werte aus der Liste entfernen. Der zu löschende Wert wird mit Hilfe seines Index bestimmt. Nach dem Löschen erhalten alle nachfolgenden Werte einen neuen, um den Wetrt 1 reduzierten Index, sodass der Index der Liste wieder lückenlos ist.
|
Größe der Liste ermitteln
|
Mit der Methode size( ) | XDEV NLS: größe ( ) lässt sich die Größe der Liste, bzw. die Anzahl der Werte in der Liste ermitteln.
1
2
|
Int groesse;
groesse = liste.size();
|
|
1
2
|
Int groesse
groesse = liste.size()
|
|
1
2
|
Ganzzahl groesse
groesse = liste\größe ( )
|
|
|
» Mehrdimensionale Listen anstatt Arrays «
Wenn Sie eine Liste als Wert in einer Liste speichern, erhalten Sie eine mehrdimensionale Liste, ähnlich einem Array. Der Vorteil gegenüber einem Array besteht darin, dass Sie Listen weder dimensionieren, noch typisieren müssen. D.h. Sie können der Liste beliebig viele Werte hinzufügen, ohne dass Sie sich vorher auf den Speicherbedarf festlegen müssen und dass Sie nicht nur Werte eines Datentyps speichern können, sondern beliebige Werte und sogar Objekte. Da mehrdimensionale Listen im Vergleich zu Arrays keine entscheidenden Nachteile haben, verzichtet XDEV 2 gänzlich auf Arrays.
Basiswissen: Variablen, Zeiger-Variablen, Methoden
|