doppelt verkettete Liste testen

scratchy1

scratchy1

Bekanntes Mitglied
Hallo Leute,
ich habe folgende Klassen, die auf jeden Fall korrekt sind:
Java:
class Entry {
Person element;
Entry next;
Entry previous;
Entry(Person element, Entry next, Entry previous) {
this.element = element;
this.next = next;
this.previous = previous;
}
}
class LinkedList1618 {
Entry header = new Entry(null, null, null);
int size = 0;
/* Constructs an empty Linked List. */
LinkedList1618() {
header.next = header;
header.previous = header;
}
/* Returns the last Element in this List. */
Person getLast() {
if (size == 0) throw new java.util.NoSuchElementException();
return header.previous.element;
}
/* Removes and returns the last Element from this List. */
Person removeLast() {
Entry lastEntry = header.previous;
if (lastEntry == header) throw new java.util.NoSuchElementException();
lastEntry.previous.next = lastEntry.next;
lastEntry.next.previous = lastEntry.previous;
size--;
return lastEntry.element;
}
/* Appends the given element to the end of this List. */
void addLast(Person p) {
Entry newEntry = new Entry(p, header, header.previous);
header.previous.next = newEntry;
header.previous = newEntry;
size++;
}
/* Returns the number of elements in this List. */
int size() {
return size;
}
}
Ich hab mir noch eine zusätzliche Klasse ausgedacht:
Java:
/* Returns the element at given position of this List*/
 Person getElementAt(int position){
      
        Entry elementAt = header.next;
        if (position <= size) {
            for(int n=0;n<=position;n++) {
             elementAt =elementAt.next;
      
        }
            return elementAt.element;
    }
        else {
            throw new java.util.NoSuchElementException();
        }
}
von der ich mir aber nicht sicher bin, ob Sie korrekt arbeitet.
Meine Klasse Person sieht so aus:
Java:
class Person {
    String firstName; // Attribut
    String lastName; // Attribut

    Person(String firstName, String lastName) { // Konstruktor
        this.firstName = firstName;
        this.lastName = lastName;
    }

    String getLastName() { // Methode
        return lastName;
    }

    String getFirstName() { // Methode
        return firstName;
    }
}
So und jetzt will ich testen:
Java:
public class TestLinkedList1618 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        LinkedList1618 liste = new LinkedList1618();
        liste.addLast(new Person("Geilo", "mat"));
        liste.addLast(new Person("Hans", "Leberwurst"));
        System.out.println(liste.getElementAt(0));
        System.out.println(liste.getLast());
    }

}
Das Ergebnis müssten die beiden Personen Geilo mat und Hans Leberwurst sein, aber die Ausgabe ist:
Person@7a7b0070
Person@7a7b0070

Ich hab in früheren Beiträgen nach einem ähnlichen Problem gesucht, aber doch nichts gefunden. Hat jemand einen Tipp, was ich hier übersehen haben könnte?
 
scratchy1

scratchy1

Bekanntes Mitglied
Hallo Javinner,
Ach, stimmt, wegen meiner Klasse Person kann ich sowieso nur entweder einen Vornamen oder einen Nachnamen ausgeben lassen?
 
H

httpdigest

Top Contributor
Plus: getElementAt() ist falsch.
Richtiger:
Java:
Person getElementAt(int position) {
  Entry elementAt = header.next;
  if (position >= size)
    throw new java.util.NoSuchElementException();
  for (int i = 0; i < position; i++)
    elementAt = elementAt.next;
  return elementAt.element;
}
 
Zuletzt bearbeitet:
J

Javinner

Top Contributor
@scratchy1 Alle Probleme die man hat, hat in der Vergangenheit schon jemand gelöst, drum sei so clever und schau dir zum Beispiel LinkedList an, wie sowas angegangen wird und versuche zu verstehen, warum man das so gemacht hat. Zur Klasse Person: du könntest eine Methode ins Leben rufen, welche den Namen getFullName() trägt und den Vor- und Nachnamen zurückliefert.
 
scratchy1

scratchy1

Bekanntes Mitglied
@httpdigest: Vielen Dank, das fälscheste war wohl das = nach dem > bzw. < ;) , und natürlich ist deins auch kürzer und ich hab es übernommen. Auch vielen Dank für den Link.
@ Javinner: Ich wurde davor gewarnt Versionen der LinkedList ab Java5 anzuschauen, weil diese eine parametrische Variante der Klasse verwendet, was mir momentan zu hoch ist. Bzgl. der getFullName()-Methode hast Du natürlich Recht, mir war erst nach Deinem 1. Post aufgefallen, dass mein erster Testversuch die Person-Klasse nicht richtig berücksichtigt.
 
scratchy1

scratchy1

Bekanntes Mitglied
Jetzt fragt sich nur, ob damit meine Liste damit als schon "ausgiebig" genug getestet gilt.
 
scratchy1

scratchy1

Bekanntes Mitglied
He, ich hab mir die Frage selbst beantwortet ;) Ich kann ja noch die anderen Methoden testen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Y Einfügen in eine doppelt verkettete Liste Java Basics - Anfänger-Themen 8
A Doppelt verkettete Liste rückwärts ausgeben Java Basics - Anfänger-Themen 17
D Doppelt Verkettete Zirkular-Liste Java Basics - Anfänger-Themen 1
B Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 8
B Doppelt Verkettete Liste - Ist alles gut so? Java Basics - Anfänger-Themen 3
U Datentypen Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 13
J Methoden Doppelt verkettete Liste remove(Object) Java Basics - Anfänger-Themen 8
B OOP Über eine doppelt verkettete Liste iterieren Java Basics - Anfänger-Themen 4
L Doppelt verkettete Liste Java Basics - Anfänger-Themen 6
R doppelt verkettete Liste aus Arrays erstellen Java Basics - Anfänger-Themen 1
S Doppelt verkettete Liste Java Basics - Anfänger-Themen 3
G Doppelt Verkettete Liste Java Basics - Anfänger-Themen 2
A Doppelt Verkettete Liste Java Basics - Anfänger-Themen 16
E doppelt verkettete liste Java Basics - Anfänger-Themen 10
E Datentypen Doppelt verkettete Liste Java Basics - Anfänger-Themen 10
P Einfügen in doppelt verkettete Liste Java Basics - Anfänger-Themen 7
S Queue als doppelt verkettete Liste Java Basics - Anfänger-Themen 2
N doppelt verkettete liste einfügen Java Basics - Anfänger-Themen 7
K Datentypen Einfach/Doppelt verkettete Liste Java Basics - Anfänger-Themen 4
W Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 2
G Doppelt verkettete, generische Liste Java Basics - Anfänger-Themen 11
D doppelt verkettete Liste Java Basics - Anfänger-Themen 16
S Doppelt Verkettete Liste Java Basics - Anfänger-Themen 7
M Doppelt verkettete Liste Zeiger Vorgänger beim Einfügen Java Basics - Anfänger-Themen 2
J doppelt verkettete Liste Java Basics - Anfänger-Themen 5
L doppelt verkettete Liste Java Basics - Anfänger-Themen 6
B Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 12
B Doppelt verkettete Liste Java Basics - Anfänger-Themen 16
R Datentyp Ring - zyklisch doppelt verkettete Liste - HILFE! Java Basics - Anfänger-Themen 12
R doppelt verkettete Liste Java Basics - Anfänger-Themen 8
F doppelt verkettete liste! Java Basics - Anfänger-Themen 8
R doppelt verkettete azyklische Liste Java Basics - Anfänger-Themen 2
T Klasse in Java für doppelt verkettete Listen Java Basics - Anfänger-Themen 4
H Doppelt verkettete Listen Java Basics - Anfänger-Themen 2
S doppelt verkettete Listen Java Basics - Anfänger-Themen 4
X Vererbung: Doppelt verkettete Listen Java Basics - Anfänger-Themen 16
I Input/Output Code wird doppelt ausgeführt Java Basics - Anfänger-Themen 3
N package wird doppelt im exporer angezeigt Java Basics - Anfänger-Themen 2
L Wie frage ich ab, ob in einem Array, Werte doppelt vorkommen? Java Basics - Anfänger-Themen 4
J Fehler beim generieren von 4 Zufallszahlen Zahl doppelt ist eigentlich ausgeschlossen Java Basics - Anfänger-Themen 9
T Löschen in doppelt verketteter Liste Java Basics - Anfänger-Themen 1
L Input/Output Println wird doppelt ausgeführt Java Basics - Anfänger-Themen 11
D Interface Frame doppelt durch Aufruf der GUI Klasse Java Basics - Anfänger-Themen 1
B BufferedReader gibt Datei-Inhalt doppelt aus Java Basics - Anfänger-Themen 3
M Liste Implementation, doppelt next() Java Basics - Anfänger-Themen 13
D Klassen Doppelt so viele Elemente in Arraylist ? Java Basics - Anfänger-Themen 4
Salo Datentypen "Doppelt" List(e) ("gesucht") Java Basics - Anfänger-Themen 6
L do-while-Schleife läuft doppelt, try catch fehler Java Basics - Anfänger-Themen 12
T Java Methode wird unerwünscht doppelt aufgerufen?! Java Basics - Anfänger-Themen 4
NicoDeluxe Doppelt Werte CSV Java Basics - Anfänger-Themen 2
llabusch Verkette Listen - Einfach und Doppelt Java Basics - Anfänger-Themen 3
N Erste Zeile bei BufferedReader doppelt lesen? Java Basics - Anfänger-Themen 2
E Erste Schritte Sortieren von Objekten in doppelt-verlinkter Liste Java Basics - Anfänger-Themen 9
S Methoden Methode wird doppelt aufgerufen ... Java Basics - Anfänger-Themen 5
J Mehrere Zufallszahlen erzeugen, aber keine darf doppelt erzeugt werden - Wie? Java Basics - Anfänger-Themen 5
B Doppelt gekettete Listen Java Basics - Anfänger-Themen 4
G PropertyChangeListener empfängt Events doppelt Java Basics - Anfänger-Themen 5
L doppelt verkette Liste Java Basics - Anfänger-Themen 5
H Fenster doppelt gezeichnet. Java Basics - Anfänger-Themen 2
G Einfügen aus Zwischenablage - alles doppelt? Java Basics - Anfänger-Themen 2
G JFileChooser kommt doppelt Java Basics - Anfänger-Themen 3
N Nullpointerexception bei Doppelt verketteter Liste Java Basics - Anfänger-Themen 7
M Listen richtig doppelt verkettet? Java Basics - Anfänger-Themen 13
D Exceptions in doppelt verketteter Liste Java Basics - Anfänger-Themen 5
C verify() wird doppelt aufgerufen (JTable + InputVerifier) Java Basics - Anfänger-Themen 8
H doppelt verkette liste Java Basics - Anfänger-Themen 2
L rückwärtsausgeben einer doppelt verketteten liste Java Basics - Anfänger-Themen 2
G JList und ListCellRenderer - Vector erscheint doppelt Java Basics - Anfänger-Themen 6
G JComboBox gibt SelectedItem immer doppelt aus Java Basics - Anfänger-Themen 4
B Array doppelt Felder löschen Java Basics - Anfänger-Themen 27
M Code wird doppelt ausgeführt Java Basics - Anfänger-Themen 2
R Zeilen aus datei lesen + doppelt gespeichert? Java Basics - Anfänger-Themen 3
G Trotz Abfrage immer noch Zahlen doppelt Java Basics - Anfänger-Themen 3
R Benutzerregistrierung: Doppelt registriert. Java Basics - Anfänger-Themen 8
V einfach verkettete Listen Java Basics - Anfänger-Themen 10
A Verkettete Liste Java Basics - Anfänger-Themen 2
L verkettete Liste Java Basics - Anfänger-Themen 15
R Methoden Entferne alle identische Knoten (Typ String) aus verkettete Liste Java Basics - Anfänger-Themen 8
C Methoden Über eine einfach verkettete Liste Java Basics - Anfänger-Themen 8
H Verkettete Liste Java Basics - Anfänger-Themen 7
N Verkettete liste rückwärts ausgeben Java Basics - Anfänger-Themen 5
K Verkettete Liste und seine Methoden Java Basics - Anfänger-Themen 1
A Was könnten typische Prüfungsaufgaben zum Thema lineare, verkettete Listen sein? Java Basics - Anfänger-Themen 5
N Verkettete Liste implementieren Java Basics - Anfänger-Themen 5
O Einfach verkettete Liste - Revert Methode Java Basics - Anfänger-Themen 1
G Verkettete Liste - Neu erzeugte Elemente werden nicht ausgegeben Java Basics - Anfänger-Themen 5
S Einfach verkettete Liste Element an bestimmter Position einfügen Java Basics - Anfänger-Themen 24
C Verkettete Liste - sortiert einfügen Java Basics - Anfänger-Themen 7
R Erste Schritte Verkettete Liste will einfach nicht in meinen Schädel Java Basics - Anfänger-Themen 11
B in einem abstrakten Set ,Elemente einer einfache verkettete List epeichern Java Basics - Anfänger-Themen 13
hooked Verkettete Liste / linked list Java Basics - Anfänger-Themen 2
J Eine Art verkettete Liste aber mit teils mehr als einem Nachfolger Java Basics - Anfänger-Themen 8
V Verkettete Liste rückwärts ausgeben Java Basics - Anfänger-Themen 3
N verkettete Listen Java Basics - Anfänger-Themen 4
K Einfach Verkettete Liste - addFirst() Java Basics - Anfänger-Themen 7
M verkettete Listen Java Basics - Anfänger-Themen 1
G 2 Aufgabe rund um eine verkettete Liste Java Basics - Anfänger-Themen 2
O Verkettete Liste Java Basics - Anfänger-Themen 10
E Methoden auf von Methoden erstellte Objekte zugreifen (verkettete Liste) Java Basics - Anfänger-Themen 10
X Einfach verkettete Liste, keine Fehlermeldung Programm friert ein Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Anzeige

Neue Themen


Oben