====== Länge der Liste bestimmen/Wert auslesen ====== ===== Listenlänge ===== Die Länge der Liste kann man bestimmen, indem man sich vom ersten Element zum letzten bewegt und dabei mit einem Zähler die verarbeiteten Elemente mit zählt. ---- {{:aufgabe.png?nolink |}} === (A1) === * Implementiere die Methode ''length'' * Teste deine Methode mit unterschiedlich langen Listen. Welchen Fall solltest du unbedingt testen? ++++ Lösungsvorschlag | /** * Gibt die Anzahl der Elemente der Liste zurück * * @return Anzahl der Listenelemente */ public int length() { int numElements = 0; Node n = first; if ( n == null) { return numElements; } numElements++; while ( n.getNext() != null ) { n = n.getNext(); numElements++; } return numElements; } ++++ ===== n-ten Wert auslesen ===== {{:aufgabe.png?nolink |}} === (A2) === Überlege dir eine Möglichkeit, eine Referenz auf das n-te Element der Liste zu ermitteln und implementiere zunächst eine **neue** (private) Methode ''getNode(int index): Node'', die eine Referenz auf den n-ten Knoten zurückliefert. * Welche Werte für n sollten akzeptiert werden? * Mit welchem Sprachkonstrukt kann man das n-te Element ansteuern? * Was sollte zurückgegeben werden, wenn der n-te Knoten nicht ermittelt werden kann? ++++ Lösungsvorschlag | /** * Gibt eine Referenz auf den n-ten Knoten der Liste zurück. * Wenn der n-te Knoten nicht ermittelt werden kann null * * @return Node, wenn der n-te Knoten gefunden wird, sonst null */ private Node getNode(int index) { if (index < 0 || index > this.length()-1) { return null; } Node n = first; for (int i=0; i ++++ ---- {{:aufgabe.png?nolink |}} === (A3) === Verwende die oben implementierte private Methode ''getNode(int index): Node'', um damit die Methode ''getValueAtN'' zu programmieren, die den Wert des n-ten Knotens zurückgibt. ---- [[..:liste_java:append|<<< Zurück zum Anhängen (am Ende)]] **oder** [[..:liste_java:insert|Weiter zum Einfügen (am Index) >>>]]