StringList:Javakurs: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Die Seite wurde neu angelegt: „Category:Tutorial Category:Java Übersicht = Zielsetzung = Eine Klasse, die eine Liste von Textzeilen verwaltet. Die Umsetzung erfolgt …“ |
Keine Bearbeitungszusammenfassung |
||
| Zeile 16: | Zeile 16: | ||
Jedes Element hat einen Verweis auf das vorherige und das nachfolgende Element. | Jedes Element hat einen Verweis auf das vorherige und das nachfolgende Element. | ||
Im ersten Element ist der Vorgänger null, im letzten Element der Nachfolger. | Im ersten Element ist der Vorgänger null, im letzten Element der Nachfolger. | ||
= Die Klassen = | |||
<pre> | |||
class Element { | |||
String text = null; | |||
Element pred = null; | |||
Element succ = null; | |||
} | |||
/** | |||
* Implements a doubled linked list of strings. | |||
*/ | |||
public class StringList { | |||
/** | |||
* @param args | |||
*/ | |||
public static void main(final String[] args) { | |||
final StringList list = new StringList(); | |||
list.add("hello"); | |||
list.add("all"); | |||
list.add("worlds"); | |||
} | |||
private Element first = null; | |||
private Element last = null; | |||
private int count = 0; | |||
/** | |||
* Adds a text to the end of the list. | |||
* | |||
* @param text | |||
* text to append | |||
*/ | |||
void add(final String text) { | |||
final Element element = new Element(); | |||
element.text = text; | |||
if (this.last == null) | |||
this.last = this.first = element; | |||
else { | |||
element.pred = this.last; | |||
this.last.succ = element; | |||
} | |||
this.count++; | |||
} | |||
/** | |||
* Gets the text of the n-th element of the list. | |||
* | |||
* @param index | |||
* index of the wanted element | |||
* @return <code>null</code>: wrong index<br> | |||
* otherwise: the text of the element with index <code>index</code> | |||
*/ | |||
String get(final int index) { | |||
Element element = this.first; | |||
for (int ix = 0; element != null && ix < index - 1; ix++) | |||
element = element.succ; | |||
return element == null ? null : element.text; | |||
} | |||
/** | |||
* @return the count | |||
*/ | |||
public int getCount() { | |||
return this.count; | |||
} | |||
/** | |||
* @return the first | |||
*/ | |||
public Element getFirst() { | |||
return this.first; | |||
} | |||
/** | |||
* @return the last | |||
*/ | |||
public Element getLast() { | |||
return this.last; | |||
} | |||
} | |||
</pre> | |||
Version vom 22. November 2014, 18:29 Uhr
Zielsetzung
Eine Klasse, die eine Liste von Textzeilen verwaltet.
Die Umsetzung erfolgt mit einer doppelt verlinkten Liste:
_________________ _________________ _________________ | text: Zeile 1 | | text: Zeile 2 | | text: Zeile 3 | | pred: <null> | <-------|--: pred | <-------|--: pred | | succ: --|-------> | succ: --|-------> | succ: <null> | |_________________| |_______________| |_______________|
Jedes Element hat einen Verweis auf das vorherige und das nachfolgende Element. Im ersten Element ist der Vorgänger null, im letzten Element der Nachfolger.
Die Klassen
class Element {
String text = null;
Element pred = null;
Element succ = null;
}
/**
* Implements a doubled linked list of strings.
*/
public class StringList {
/**
* @param args
*/
public static void main(final String[] args) {
final StringList list = new StringList();
list.add("hello");
list.add("all");
list.add("worlds");
}
private Element first = null;
private Element last = null;
private int count = 0;
/**
* Adds a text to the end of the list.
*
* @param text
* text to append
*/
void add(final String text) {
final Element element = new Element();
element.text = text;
if (this.last == null)
this.last = this.first = element;
else {
element.pred = this.last;
this.last.succ = element;
}
this.count++;
}
/**
* Gets the text of the n-th element of the list.
*
* @param index
* index of the wanted element
* @return <code>null</code>: wrong index<br>
* otherwise: the text of the element with index <code>index</code>
*/
String get(final int index) {
Element element = this.first;
for (int ix = 0; element != null && ix < index - 1; ix++)
element = element.succ;
return element == null ? null : element.text;
}
/**
* @return the count
*/
public int getCount() {
return this.count;
}
/**
* @return the first
*/
public Element getFirst() {
return this.first;
}
/**
* @return the last
*/
public Element getLast() {
return this.last;
}
}