Fragen zu generischer doppelt verketteter Liste (bei fehlendem Grundverständnis)

jens.ru

Mitglied
Ahoi. Wir sollen dieses Mal eine generische doppelt verkettete Liste programmieren. Nur leider fehlt mir (trotz intensivem googlen, recherchieren und wälzen der Unterlagen) noch immer das nötige Grundverständnis. Wir haben ein Interface gestellt bekommen und sollen damit eine Klasse programmieren, welche für die Verwaltung/Erstellung von Einträgen dieser Liste zuständig ist. Den aktuellen Code habe ich beigefügt.

Java:
import java.util.*;

public class AuDSequentialQueue<ElementType extends Comparable<ElementType>> implements AuDQueue {
	// Unterschied zwischen ElementType und Comparable? Wo wird was verwendet?
	protected Comparable head;
	protected Comparable tail;
	protected int size;

	public static void main(String args[]) {
		AuDSequentialQueue schlange = new AuDSequentialQueue();
		System.out.println(schlange.isEmpty());
		schlange.enqueue("a");
		System.out.println(schlange.isEmpty());
	}

	public AuDSequentialQueue() {
		head = null;
		tail = null;
		size = 0;
	}

	public boolean isEmpty() {
		return (size == 0);
	}

	public int size() {
		return size;
	}

	public void clear() {
		head = null;
		tail = null;
		size = 0;
	}

	public boolean exists(Comparable element) {
		return false;
	}

	public boolean exists(Comparable[] elements) {
		return false;
	}

	public Comparable getHead() throws NoSuchElementException {
		return head;
	}

	public Comparable getTail() throws NoSuchElementException {
		return tail;
	}

	public void enqueue(Comparable element) {
		Comparable elem = this.head;

		while (elem != null) {
			elem = ((ListNode<ElementType>) elem).getNext();
		}
		elem.setNext(new ListNode<ElementType>(element));
		element.setNext(null);
		size++;
	}

	public void enqueue(Comparable[] elements) {

	}

	public Comparable dequeue() throws NoSuchElementException {
		size--;
		return null;
	}

	public void moveElementsFrom(AuDQueue other) {

	}

	public String toString() {
		return null;
	}

	// ////////////////////// Innere Klasse für Listeneinträge
	protected class ListNode<ElementType extends Comparable<ElementType>> {
		protected Comparable data;
		protected Comparable next;
		protected Comparable prev;

		public ListNode(Comparable data) {
			this.data = data;
			this.next = null;
			this.prev = null;
		}

		public void setNext(Comparable next) {
			this.next = next;
		}

		public void setPrev(Comparable prev) {
			this.prev = prev;
		}

		public Comparable getNext() {
			return next;
		}

		public Comparable getPrev() {
			return prev;
		}

		public Comparable getData() {
			return data;
		}
	}

}

Nun weiß ich nicht so recht, was es mit diesem extends Comparable von ElementType auf sich hat?
Im Interface steht als Parameter überall ElementType, ich habe Eclipse automatisch die ganzen Methoden übernehmen lassen, dann steht in der Klasse auf einmal Comparable?
Comparable heißt irgendwie nur, dass man nur Objekte erzeugen kann, die man miteinander vergleichen kann, habe ich irgendwie aus diversen Google Einträgen herausgelesen? Nun habe ich überall als Parameter Comparable eingetragen und trotzdem bring Eclipse mir bei der Methode enqueue die Fehlermeldung

The method setNext(AuDSequentialQueue<ElementType>.ListNode<ElementType>) is undefined for the type Comparable

Warum? Irgendwie komm ich mit diesem generischen Sch**** nicht so richtig klar. Abgabe ist am Sonntag, deswegen werde ich langsam auch ein wenig nervös :)

Danke schon im Voraus recht herzlich für Antworten aller Art.

P.s. Ja. ListNode muss eine innere Klasse sein.
 
Zuletzt bearbeitet:

Flown

Administrator
Mitarbeiter
Weil du nicht immer alles automatisch erzeugen lassen sollst. Eine einfache LinkedList hier:

Java:
import java.util.NoSuchElementException;

public class LinkedList<T extends Comparable<T>> implements MyQueue<T> {
  
  private ListNode head, tail;
  private int size;
  
  public LinkedList() {
    clear();
  }
  
  @Override
  public boolean isEmpty() {
    return size == 0;
  }
  
  @Override
  public int size() {
    return size;
  }
  
  @Override
  public void clear() {
    head = null;
    tail = null;
    size = 0;
  }
  
  @Override
  public boolean exists(T element) {
    for (ListNode node = head; node != null; node = node.next) {
      if (element == null ? element == node.data : element.compareTo(node.data) == 0) {
        return true;
      }
    }
    return false;
  }
  
  @Override
  public T getHead() throws NoSuchElementException {
    if (isEmpty()) {
      throw new NoSuchElementException("list is empty");
    }
    return head.data;
  }
  
  @Override
  public T getTail() throws NoSuchElementException {
    if (isEmpty()) {
      throw new NoSuchElementException("list is empty");
    }
    return tail.data;
  }
  
  @Override
  public void enqueue(T element) {
    if (isEmpty()) {
      head = tail = new ListNode(element, null);
    } else {
      tail.next = new ListNode(element, null);
      tail = tail.next;
    }
    size++;
  }
  
  @Override
  public void enqueue(T[] elements) {
    for (T element : elements) {
      enqueue(element);
    }
  }
  
  @Override
  public T dequeue() throws NoSuchElementException {
    if (isEmpty()) {
      throw new NoSuchElementException("list is empty");
    }
    T elem = head.data;
    if (head == tail) {
      head = tail = null;
    } else {
      head = head.next;
    }
    size--;
    return elem;
  }
  
  @Override
  public void moveElementsFrom(MyQueue<T> other) {
    while (!other.isEmpty()) {
      enqueue(other.dequeue());
    }
  }
  
  private class ListNode {
    public T data;
    public ListNode next;
    
    public ListNode(T data, ListNode next) {
      this.data = data;
      this.next = next;
    }
  }
  
  public static void main(String... args) {
    LinkedList<Integer> list = new LinkedList<>();
    System.out.println(list.size());
    list.enqueue(1);
    System.out.println(list.size());
    System.out.println(list.dequeue());
    System.out.println(list.size());
  }
  
}

interface MyQueue<T> {
  boolean isEmpty();
  
  int size();
  
  void clear();
  
  boolean exists(T element);
  
  T getHead() throws NoSuchElementException;
  
  T getTail() throws NoSuchElementException;
  
  void enqueue(T element);
  
  void enqueue(T[] elements);
  
  T dequeue() throws NoSuchElementException;
  
  void moveElementsFrom(MyQueue<T> other);
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Zrebna Fragen zu Testabdeckungs-Metriken Allgemeine Java-Themen 4
MarvinsDepression Unbekanntes Zeichen in fremden Code wirft Fragen auf Allgemeine Java-Themen 4
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
K BlueJ - Fragen zu dem Spiel Pacman (Nachprogrammieren) Allgemeine Java-Themen 141
V Ich hätte 2 Fragen Allgemeine Java-Themen 5
ME2002 Fragen aus einer Java Klausur Allgemeine Java-Themen 67
H Fragen zur Kraken Api Allgemeine Java-Themen 1
nonickatall Klassen Grundsätzliche Fragen zu geplanter Programmstruktur Allgemeine Java-Themen 5
W Ein paar Fragen zu .properties und .css Allgemeine Java-Themen 6
W Mal ein paar generelle Fragen zu InputStream und OutputStream Allgemeine Java-Themen 4
X Fragen zur Javamail API und Gmail Allgemeine Java-Themen 4
T Fragen bezgl. Lambdas Allgemeine Java-Themen 20
X Collections Fragen zu gleichen Elementen in TreeSet Allgemeine Java-Themen 35
A Neuerungen in Java 8 StreamAPI- Paar fragen Allgemeine Java-Themen 4
temi Fragen zur Software-Architektur Allgemeine Java-Themen 123
M Diverse Design-Fragen Allgemeine Java-Themen 6
J 2 Fragen zur Vererbung Allgemeine Java-Themen 5
H Java FX 2 Fragen um Programm in mehrere sprachen zu übersetzen in Gluon Framwork Allgemeine Java-Themen 3
M Fragen beantworten über Textfeldeingabe Allgemeine Java-Themen 5
D Grundsätzliche Fragen zum Heap Space Allgemeine Java-Themen 12
J Allgemeine Fragen zu Vererbung Allgemeine Java-Themen 1
M Allgemeine Fragen meinerseits Allgemeine Java-Themen 4
V Wie kann ich die Fragen mit den anderen Klassen verbinden? Allgemeine Java-Themen 1
R Es gibt keine dummen Fragen (hab ich mal gehört) Allgemeine Java-Themen 11
T Fragen zum Thread-Thema Allgemeine Java-Themen 4
2 2 Klein Fragen Allgemeine Java-Themen 7
alderwaran .jar Code Signing, User-Keystore und Fragen dazu Allgemeine Java-Themen 0
T Fragen zum Thread-Thema Allgemeine Java-Themen 9
A Java Theorie-Fragen Allgemeine Java-Themen 7
K Java QUIZ-Spiel Fragen und Antworten generieren?! Allgemeine Java-Themen 5
R Socket Fragen zu UDP Allgemeine Java-Themen 1
B Noob-Fragen zu Tablets und PC kompatiblität... Allgemeine Java-Themen 6
D Ein paar allgemeine Fragen zu Java Allgemeine Java-Themen 19
L Fragen für Facharbeit: Analyse von Strings in Java Allgemeine Java-Themen 4
R Fragen zu Server + UI Allgemeine Java-Themen 2
U Vier Fragen zu Java Allgemeine Java-Themen 2
H MediaManager Fragen/Probleme Allgemeine Java-Themen 6
D Fragen zum erstellen einer ausführbaren Jar Datei Allgemeine Java-Themen 3
C Polymorphie Fragen zur Annotations von Persistenz Allgemeine Java-Themen 2
O Fragen über Fragen - Bei Änderung XML-Datei -> Anpassung GUI Allgemeine Java-Themen 7
StrikeTom Java Performance Fragen Allgemeine Java-Themen 5
Luk10 Fragen zum ByteBuffer (lwjgl - icons) Allgemeine Java-Themen 2
F Akkumulator Hough-Transformation offene Fragen Allgemeine Java-Themen 4
Luk10 Fragen zu Naming-Conventions Allgemeine Java-Themen 5
Z Einige Fragen Allgemeine Java-Themen 10
T OOP Einige Fragen zu UML-Klassendiagrammen Allgemeine Java-Themen 6
G Einige Fragen zu ResourceBundles Allgemeine Java-Themen 2
S Fragen zu verschiedenen Themen vom JCreator Allgemeine Java-Themen 2
DStrohma Grundsätzliche Fragen zum Aufbau eines komplexeren Programmes Allgemeine Java-Themen 8
Semox Grapheneditor - Allgemeine Fragen zum Logikdesign Allgemeine Java-Themen 3
O kleine Fragen eines Anfängers Allgemeine Java-Themen 2
X Executor fragen ob fertig Allgemeine Java-Themen 13
nrg Swing 2 Fragen zu Swing/AWT Allgemeine Java-Themen 7
K Reflections Fragen Allgemeine Java-Themen 7
S Fragen zum SCJD-Zertifikat Allgemeine Java-Themen 2
M Backend Entwicklung - Konzept fragen Allgemeine Java-Themen 3
E Fragen zu Scala Allgemeine Java-Themen 11
Daniel_L Fragen zu RegEx und URL umwandeln Allgemeine Java-Themen 4
J Diverse Fragen bezüglich Jasper Allgemeine Java-Themen 3
S Fragen zum ShutdownHook Allgemeine Java-Themen 7
V Fragen zu einem Java Browser Allgemeine Java-Themen 7
G Fragen zum eigenen Scheduler Allgemeine Java-Themen 4
M Drag and Drop: 3 Fragen Allgemeine Java-Themen 3
L Einige Fragen zu Java Allgemeine Java-Themen 9
F Linguistische Fragen zu Javadoc bzw. Englisch Allgemeine Java-Themen 4
E Einfache Fragen zu Dateien Allgemeine Java-Themen 7
E Thread Fragen in Verbindung mit Swing Allgemeine Java-Themen 4
M MVC Design Pattern - Verständniss Fragen Allgemeine Java-Themen 3
X Einige Fragen zu Serialisierung Allgemeine Java-Themen 2
H Java Multiplicoice Test (10 Fragen) Allgemeine Java-Themen 11
J Viele Fragen. =) Hoffentlich könnt ihr helfen Allgemeine Java-Themen 9
D Grundsätzliche Fragen zur Grafikdarstellung in Spielen Allgemeine Java-Themen 2
J 2 Fragen zu JMF und eine Rechtsfrage Allgemeine Java-Themen 3
S Viele Fragen eines Umsteigers (von .NET) Allgemeine Java-Themen 6
C LinkedList Fragen Allgemeine Java-Themen 7
P Fragen zur JBuilder und den kosten. Allgemeine Java-Themen 7
reibi JVM fragen welche Apps geladen sind Allgemeine Java-Themen 7
I Fragen zum Internetseiten Einlesen/Auswerten Allgemeine Java-Themen 5
F Paket und Software Design Fragen. Allgemeine Java-Themen 5
S 2 Fragen allgemeine fragen zu final und interface Allgemeine Java-Themen 13
M ein paar fragen über JBoss und Catalina Allgemeine Java-Themen 7
D Allgemeine Fragen zum Speichern Allgemeine Java-Themen 3
F allgemeine Fragen zu Java Allgemeine Java-Themen 9
S Fragen zu 4 speziellen Listen Allgemeine Java-Themen 4
U JFrame, JOptionPane - vor dem Schließen Benutzer fragen Allgemeine Java-Themen 10
I zwei simple fragen Allgemeine Java-Themen 22
G 2 Fragen Allgemeine Java-Themen 7
G Fragen zu ausführbaren JAR Files Allgemeine Java-Themen 23
G Fragen zu JTextField bzw. JTextArea Allgemeine Java-Themen 2
J 5 Fragen. Allgemeine Java-Themen 2
P Tausend Fragen... Allgemeine Java-Themen 3
S Interface, generischer Datentyp, Exception? Allgemeine Java-Themen 3
Q Java Generischer Datentyp Allgemeine Java-Themen 4
D Datentypen Klassenattribut aus Objekt in generischer Liste Allgemeine Java-Themen 15
M instanceof bei generischer Methode Allgemeine Java-Themen 3
S Polymorphie generischer Rückgabe-Typ Allgemeine Java-Themen 4
S Problem mit generischer Liste :( Allgemeine Java-Themen 6
D Einfaches Nutzen von Plugins mittels generischer Methode Allgemeine Java-Themen 3
D Addition generischer Datentypen Allgemeine Java-Themen 12
D generischer Iterator und Set Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben