Frage zu generischer Liste

sdx677

Mitglied
Moin zusammen,

ich habe zuvor eine einfach verkettete Liste von Integern programmiert. Nun soll ich diese umbauen, sodass sie mit generischen Datentypen arbeitet, also auch Strings, etc. annimmt, dazu habe ich ein generisches Interface, dass die compare Methode enthält, sowie
die Klasse des einzelnen Listenelements, die getter, setter, verweis aufs nächste Element enthält und die Klasse der Liste selber, die im wesentlichen die Methoden addEntry und remove Entry beinhaltet.
Nun sollen die Elemente in der Liste immer sortiert vorliegen, also Zahlen aufsteigend und Strings lexikalisch sortiert.

Meine Frage: Wie und wo definiert man die Ordnungsrelation dieser Liste. In der einfachereren Integerliste wird die compare Methode ja einfach in der Klasse des Listenelements programmiert und gibt entsprechende Werte zurück. Da nun aber der Datentyp des Listenelements generisch ist, geht das aber nicht mehr, oder?

Ich hoffe mein Anliegen ist verständlich geworden,

würde mich über eine Antwort sehr freuen!
LG
 
Also die compare Methode befindet sich ja in dem Interface:

Code:
public interface MyComparableObject<T>  {
  
    int compare(T otherInstance);
       }

Und ich dachte, dass die Klasse des einzelnenListenElementes jetzt dieses Interface und damit die Methode implementieren muss.
Aber wie stelle ich das an, wenn ich den Datentyp noch nicht kenne?
Zwei Methoden schreiben und dann irgendwie mit "isTypeOf" oder sowas prüfen, um welchen Datentyp es sich konkret handelt erscheint mir komisch.

Ergänzung: Das ist die Klasse MyGenericListElement

Java:
public class MyGenericListElement<T extends MyComparableObject<T>>implements MyComparableObject<T>  {  
 
        private T value;
        protected MyGenericListElement<T> next;
      
        public MyGenericListElement(T value,MyGenericListElement<T> next){
            this.value=value;
            this.next=next;
        }
      
        public T getValue(){
          
            return this.value;
        }
      
      
        public void setValue(T value){
          
            this.value=value;
          
        }
      
        public void setNext(MyGenericListElement<T> next){
            this.next=next;
        }


        public MyGenericListElement<T> getNext(){
            return this.next;
        }

        @Override
        public int compare(T otherInstance) {
          
          
          
        }
 
Zuletzt bearbeitet von einem Moderator:
Du lässt deine Datentypen Comparable implementieren und sagst deiner Liste das du Datentypen vom Typ Comparable erwartest. Deine Datentypen werden dann gezwungen eine compareTo Methode zu implementieren
 

Neue Themen


Zurück
Oben