Listenimplementierung - Wie erweitern?

Jos

Mitglied
Hallo zusammen,

folgenden Code habe ich erstellt:

Java:
/*######################################
 * Eine verkettete Liste Version 2
 ######################################*/

//die Klasse für die Listenelemente
//jetzt auch mit Methoden
class Listenelement {
		String daten;
		Listenelement naechster;

		//die Methode zum Setzen der Daten
		void setDaten(String datenNeu) {
			//die Zeichenkette setzen
			daten = datenNeu;
			//das Ende markieren
			naechster = null;
		}

		//die Methode zum Anhängen eines neuen Elements
		//sie ruft sich rekursiv auf, bis das Ende erreicht ist
		void anhaengen(String datenNeu) {
			//wenn das Ende erreicht ist, ein neues Element erzeugen
			if (naechster == null) {
				naechster = new Listenelement();
				naechster.setDaten(datenNeu);
			}
			//sonst ruft sich die Methode selbst wieder auf
			else
				naechster.anhaengen(datenNeu);
			//nur zur Veranschaulichung
			System.out.println("Daten " + datenNeu + " wurden eingefügt.");
		}

		//die Methode zur Ausgabe der Liste
		//sie ruft sich ebenfalls rekursiv auf, bis das Ende erreicht ist
		void ausgeben() {
			System.out.println(daten);
			if (naechster != null)
				naechster.ausgeben();
		}
	}

public class Java05a_10 {
	public static void main(String[] args) {
		//ein neues Listenelement erzeugen
		Listenelement listenAnfang = new Listenelement();

		//die Daten im ersten Listenelement setzen
		listenAnfang.setDaten("Element 1");

		//weitere Elemente in einer Schleife einfügen
		for (int element = 2; element < 4; element++)
			listenAnfang.anhaengen("Element " + element);

		//die Liste ausgeben
		listenAnfang.ausgeben();
	}
}

Nun möchte ich, dass das Listenende beim Anhängen nicht immer wieder neu ermittelt werden muss. sondern deue Elemente direkt am Ende der Liste angehängt werden können.

Ich hab nur keine Idee, wie ich das realisieren kann. Hat jemand einen Tipp?

Viele Grüße
Jos
 

Tarrew

Top Contributor
Ich würde mir eine äußere Klasse bauen, die eine Referenz auf den Anfang und das Ende hat.
Also eine Klasse List und deine bestehende Klasse Listenelement.

In etwa so:
Java:
public class Liste {

	Listenelement anfang;
	Listenelement ende;
	
	public static void main(String[] args) {
		Liste list = new Liste();
		for (int element = 1; element < 10; element++)
			list.anhaengen("Element " + element);
		list.anfang.ausgeben();
	}
	
	
	//die Methode zum Anhängen eines neuen Elements
	//sie ruft sich rekursiv auf, bis das Ende erreicht ist
	void anhaengen(String datenNeu) {
		//...
	}
	
	
	class Listenelement {
		String daten;
		Listenelement naechster;
 
		//die Methode zum Setzen der Daten
		void setDaten(String datenNeu) {
			//die Zeichenkette setzen
			daten = datenNeu;
			//das Ende markieren
			naechster = null;
		}
 
 
		//die Methode zur Ausgabe der Liste
		//sie ruft sich ebenfalls rekursiv auf, bis das Ende erreicht ist
		void ausgeben() {
			System.out.println(daten);
			if (naechster != null)
				naechster.ausgeben();
		}
	}
	
	
}

Die Methode zum Einfügen solltest du dann natürlich in der Klasse "Liste" haben, da diese Klasse ja die Referenzen auf den Anfang und das Ende hat. Deine anderen Methoden habe ich mal nicht angefasst, auch wenn man das evtl. etwas schöner hätte machen können.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
Poppigescorn Arrayliste Mittels Scanner erweitern Java Basics - Anfänger-Themen 6
J GroupLayout zur Laufzeit erweitern Java Basics - Anfänger-Themen 1
B Array bei jeder Eingabe um eins erweitern Java Basics - Anfänger-Themen 3
JD_1998 Vorgegebene Methode erweitern um Hex -> Dezimal umzuwandeln Java Basics - Anfänger-Themen 1
V Array aus Klasse um vererbte Elemente erweitern Java Basics - Anfänger-Themen 3
1 main-Methode erweitern, Nachfrage nach wiedeholung Java Basics - Anfänger-Themen 2
bensdt Klasse erweitern um eine Methode "void decrement()" Java Basics - Anfänger-Themen 5
M Ein Programm erweitern, wie? Java Basics - Anfänger-Themen 3
M Array immer wieder um ein Element erweitern Java Basics - Anfänger-Themen 6
S Array Java erweitern Java Basics - Anfänger-Themen 27
I Vererbung Polygon erweitern ? Java Basics - Anfänger-Themen 4
zhermann String erweitern Java Basics - Anfänger-Themen 4
L Java Kenntnisse erweitern... Java Basics - Anfänger-Themen 10
javaerd Wie kann ich Brute Force Methode mit Strings erweitern Java Basics - Anfänger-Themen 1
M Classpath Befehl zum Kompilieren um die Option classpath erweitern. Java Basics - Anfänger-Themen 5
H Implementierung eines Interfaces erweitern Java Basics - Anfänger-Themen 13
D Datentypen 2 d array erweitern und ins negative gehen. Java Basics - Anfänger-Themen 9
F Erste Schritte If Bedingung in Schleife dynamisch erweitern Java Basics - Anfänger-Themen 4
V Dreidimensionales int Array erweitern/verkleinern Java Basics - Anfänger-Themen 4
A Properties erweitern Java Basics - Anfänger-Themen 2
H Klasse erweitern Java Basics - Anfänger-Themen 20
M Array erweitern ohne Stringbuilder Java Basics - Anfänger-Themen 6
U JFrame durch ActionListener erweitern Java Basics - Anfänger-Themen 4
HoloYoitsu args-Parameter durchschleifen (Schnittstelle erweitern?) Java Basics - Anfänger-Themen 27
R Polygon erweitern Java Basics - Anfänger-Themen 10
T Vererbung, Konstruktor erweitern Java Basics - Anfänger-Themen 4
E Input/Output Datei immer weiter erweitern Java Basics - Anfänger-Themen 4
L Array um ein Feld erweitern Java Basics - Anfänger-Themen 13
S table erweitern Java Basics - Anfänger-Themen 3
M Array in Methode erweitern und zurückgeben Java Basics - Anfänger-Themen 7
C ImageIcon erweitern Java Basics - Anfänger-Themen 6
L Array erweitern per Methode Java Basics - Anfänger-Themen 5
C OOP Externe Klasse erweitern (ohne Vererbung!!) Java Basics - Anfänger-Themen 8
E Objekt entweder erstellen oder erweitern Java Basics - Anfänger-Themen 4
C xml datei erweitern Java Basics - Anfänger-Themen 3
S Teiler ermittlen - Array erweitern? Java Basics - Anfänger-Themen 14
B EnumSet erweitern ... Java Basics - Anfänger-Themen 25
T array erweitern/flexible ohne collections usw. Java Basics - Anfänger-Themen 3
J Arrays erweitern - Performance vs Speicherverbrauch Java Basics - Anfänger-Themen 6
B Textdateien erweitern Java Basics - Anfänger-Themen 7
V Warum? Klasse erweitern und ausgeben Java Basics - Anfänger-Themen 3
S Welche Klasse erweitern? Java Basics - Anfänger-Themen 4
G Bildbetrachter erweitern Java Basics - Anfänger-Themen 14
G JComboBox um eine Methode erweitern Java Basics - Anfänger-Themen 2
L String erweitern. Java Basics - Anfänger-Themen 2
H 2DArray manuell dynamisch erweitern Java Basics - Anfänger-Themen 7
K Objekte/Klassen erweitern ~ Javascript Prototyp Java Basics - Anfänger-Themen 5
D Heap erweitern Java Basics - Anfänger-Themen 3
P Fenstergröße per Buttonklick erweitern? Java Basics - Anfänger-Themen 4
A Queue erweitern Java Basics - Anfänger-Themen 13
A classpath zur Laufzeit erweitern Java Basics - Anfänger-Themen 4
T Objekt erweitern Java Basics - Anfänger-Themen 3
G Feld bzw. Arrays erweitern oder zusammenfügen Java Basics - Anfänger-Themen 4
C fenster erweitern durch button Java Basics - Anfänger-Themen 3
M JList Datenstring erweitern und JList aktualisieren Java Basics - Anfänger-Themen 5
G JToolbar dynamisch erweitern Java Basics - Anfänger-Themen 8
G Menüeinträge dynamisch erweitern Java Basics - Anfänger-Themen 2
J Erweitern eines Tree-Pfades? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben