Vergleiche bei generischen Datentypen

wolfbiker

Mitglied
Guten Morgen,

da ich schon seit längerem über folgendem Problem brüte und mich dabei immer weiter verstricke, bitte ich um einen Blick von außen. Es geht also um folgendes, ganz vereinfacht dargestellt:

Ich habe ein Klasse, die grundsätzlich erstmal mit <T> parametrisiert ist.
Java:
public class foo<T> {
  T foo1;
  T foo2;

  // Konstruktor...
}

Ziel soll sein, dass dieser primitive Container grundsätzlich verschiedene Datentypen schlucken soll, also..
Java:
public static void main(String[] args) {
    foo<Integer> f1 = new foo<Integer>(4, 5);
   foo<Double> f1 = new foo<Double>(4.0, 5.0);
}



In der Klasse foo soll der Vergleich stattfinden. Da die Vergleichsoperatoren <, >, ==, ... ja allein auf primitive Datentypen anzuwenden sind, müssen wir andere Geschütze auffahren.
Folgende Überlegung:
Java:
public class foo<T extends Comparable<T>> implements Comparable<T> {
  T foo1;
  T foo2;

  // Konstruktor...

  @Override
  public int compareTo(T o) {
       return 0;
  }

Meine Hürde ist jetzt, wie ich innerhalb compareTo konkret den Vergleich anstellen soll.
Mit this.foo1 > this.foo2 stehe ich ja wieder vor der selben Wand.

Kann mir jemand einen Tip geben?

Besten Dank, Gruß
 

wolfbiker

Mitglied
Hallo!

Vielen Dank für eure schnellen und informativen Antworten! Post #4 hat mir geholfen, zumindest das konkrete Problem zu lösen!

Über das komplette Verständnis reden wir lieber mal noch nicht, die Gefahr dass ich in den Fettnapf trete ist hoch :-D


@ #2 / #3
Mein Ziel ist foo1 / foo2 direkt miteinander zu vergleichen. Stellt euch vor es ist später eine Liste, die mit QuickSort sortiert werden soll, wobei das Programm eben kompatibel zu unterschiedlichen Datentypen sein soll.

@ #5
Ok darüber muss ich nachdenken!

Danke erstmal!
 

mihe7

Top Contributor
Ok darüber muss ich nachdenken!
Was Du ja schon gemacht hast:
Mein Ziel ist foo1 / foo2 direkt miteinander zu vergleichen

Aber evtl. hilft es, mal bessere Namen zu verwenden. Nennen wir das Kind mal nicht foo sondern Paar. Ein Paar stellt also zwei T-Objekte dar. Durch Paar implements Comparable<T> sagst Du nun, dass Du ein Paar mit T vergleichen, also Aussagen wie (1,3) < 2 treffen kannst. Derlei Aussagen sind ... strange :)

Tatsächlich willst Du aber einfach eine Methode haben, die die beiden Komponenten des Paares miteinander vergleicht.
 

MoxxiManagarm

Top Contributor
@ #2 / #3
Mein Ziel ist foo1 / foo2 direkt miteinander zu vergleichen. Stellt euch vor es ist später eine Liste, die mit QuickSort sortiert werden soll, wobei das Programm eben kompatibel zu unterschiedlichen Datentypen sein soll.
Du weißt aber schon was Post #4 macht? Post #4 sortiert später die Liste so:
- Zuerst kommen alle Objekte (class foo) in der Liste, bei denen foo1 kleiner ist als foo2
- Dann alle foo1==foo2
- Und dann alle foo1>foo2
Wenn das das Ziel ist dann gut


Den Teil implements Comparable<T> brauchst du nicht meiner Meinung nach, denn damit vergleichst du die class foo und nicht foo1 mit foo2.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
X Erste Schritte Vergleiche Java Basics - Anfänger-Themen 1
F Vergleiche mit charAt funktioniert bei Strings nicht, was tun? Java Basics - Anfänger-Themen 5
T Wie vergleiche ich die Jahre aus der while Schleife die in ( public class) fuer cbx geschrieben sind Java Basics - Anfänger-Themen 5
D Wie vergleiche ich zwei BigInteger Werte? Java Basics - Anfänger-Themen 1
N enum vergleiche Klammern? Java Basics - Anfänger-Themen 5
N Vergleiche mit for schleife Java Basics - Anfänger-Themen 2
I String vergleiche mit == Java Basics - Anfänger-Themen 2
D equals Vergleiche Java Basics - Anfänger-Themen 7
A Quicksort, #Vergleiche zählen klappt nicht Java Basics - Anfänger-Themen 3
R Vergleiche mit Equals(), hashCode() und == Java Basics - Anfänger-Themen 10
A Generischen Klassen Java Basics - Anfänger-Themen 8
H Datentypen Generischen Typ instanzieren Java Basics - Anfänger-Themen 19
D generischen Sammlung Java Basics - Anfänger-Themen 29
Shizmo Frage zu generischen Arrays Java Basics - Anfänger-Themen 3
G Was ist der Nutzen von generischen Konstruktoren? Java Basics - Anfänger-Themen 4
M Datentypen Konstruktor mit generischen Parametern überladen Java Basics - Anfänger-Themen 3
H Collections Array mit generischen Typ Java Basics - Anfänger-Themen 11
X eigener Mergesort auf generischen Typen mit Comparator Java Basics - Anfänger-Themen 6
Z Problem mit Ausgabe eines generischen Suchbaums Java Basics - Anfänger-Themen 3
G Class eines Generischen Datentyps? Java Basics - Anfänger-Themen 6
T Vergleich von generischen Typen Java Basics - Anfänger-Themen 2
F Generische Liste von generischen Objekten. Java Basics - Anfänger-Themen 3
A Array mit generischen Typen casten? Java Basics - Anfänger-Themen 6
R Datentypen Das Verhalten von Strings als Datentypen Java Basics - Anfänger-Themen 7
T Unterschiedliche Datentypen - worin abspeichern? Java Basics - Anfänger-Themen 18
N Verschiedene Konstruktoren mit gleichen Datentypen Java Basics - Anfänger-Themen 8
J Einige Anfängerfragen (Datentypen, Wertebereich) Java Basics - Anfänger-Themen 11
thor_norsk Datentypen unter Java Java Basics - Anfänger-Themen 3
T Datentypen Eigene Datentypen Java Basics - Anfänger-Themen 15
T for-each-Schleife, verschiedene Datentypen Java Basics - Anfänger-Themen 1
G Methoden Methoden mit versch. Datentypen Java Basics - Anfänger-Themen 1
Nicolex3 Größere Datentypen Java Basics - Anfänger-Themen 35
FelixN Array mit verschiedene Datentypen als Rückgabewert? (Long und Double) Java Basics - Anfänger-Themen 3
mihe7 Von Datentypen und (mehrdimensionalen) Arrays Java Basics - Anfänger-Themen 4
P Datentypen, Klassen, Operatoren, Wrapperklassen Java Basics - Anfänger-Themen 2
D Eingabe einscannen, ohne vorher einen Datentypen anzugeben? Java Basics - Anfänger-Themen 1
M Datentypen Generische Datentypen - Syntax Java Basics - Anfänger-Themen 25
L Binären Bäume für beliebige Datentypen Java Basics - Anfänger-Themen 15
L Datentypen Ausgabe von eigenem Datentypen Java Basics - Anfänger-Themen 2
T Datentypen Kann Java 2 verschiedene Datentypen vergleichen? Java Basics - Anfänger-Themen 2
A Datentypen Unterschiedliche Datentypen in einer Eingabe einlesen Java Basics - Anfänger-Themen 2
Queiser Datentypen 2 generische Datentypen für eine Schnittstelle Java Basics - Anfänger-Themen 1
SHasteCode Datentypen Überlauf primitiver Datentypen Java Basics - Anfänger-Themen 4
S Datentypen Java Basics - Anfänger-Themen 14
Antegra Tekkrebell Primitive Datentypen Literal 8072 Java Basics - Anfänger-Themen 21
N Array gleiche Datentypen zusammenrechnen Java Basics - Anfänger-Themen 28
S Datentypen Java Basics - Anfänger-Themen 4
S generische methode mit verschiedenen datentypen Java Basics - Anfänger-Themen 3
H wählen des kleinstmöglichen Datentypen für Gleitkommazahlen. Java Basics - Anfänger-Themen 2
S Datentypen Java Basics - Anfänger-Themen 2
S Datentypen Abstrakte Datentypen Java Basics - Anfänger-Themen 0
J Zusammenhang Numbers und nummerische Datentypen Java Basics - Anfänger-Themen 2
F Variablen unterschiedlicher Datentypen Java Basics - Anfänger-Themen 6
A Abstrakte Datentypen - Methode delete Java Basics - Anfänger-Themen 6
J Generics Datentypen vergleichen Java Basics - Anfänger-Themen 16
D Spezifikation abstrakter Datentypen Java Basics - Anfänger-Themen 3
W Datentypen Datentypen vergleichen Java Basics - Anfänger-Themen 4
B JAVA Datentypen/Überlauf Java Basics - Anfänger-Themen 4
I Erste Schritte HILFE bei Datentypen Java Basics - Anfänger-Themen 2
J Wertebereiche und Datentypen Java Basics - Anfänger-Themen 12
N Methode mit 2 Datentypen. Fehler? Java Basics - Anfänger-Themen 1
N Probleme mit Datentypen Java Basics - Anfänger-Themen 6
S Datentypen Unterschied elementare und zusammengesetzte/strukturierte Datentypen Java Basics - Anfänger-Themen 5
L Beliebigen Datentypen aus String parsen Java Basics - Anfänger-Themen 6
M Wann eine Wrapper Klasse verwenden und wann einen primitiven Datentypen? Java Basics - Anfänger-Themen 8
K new / Datentypen Java Basics - Anfänger-Themen 3
S Datentypen und ihre Größe Java Basics - Anfänger-Themen 21
T Variablen Varargs und beliebige Datentypen Java Basics - Anfänger-Themen 7
S Datentypen Sonderbehandlung primitiver Datentypen, fixe Konstanteninterpretation Java Basics - Anfänger-Themen 10
G Wertebereiche bei Datentypen Java Basics - Anfänger-Themen 10
G Erste Schritte Über verschiedene Datentypen iterieren. Gibt es sowas? Java Basics - Anfänger-Themen 19
SheldoN Gibt es größere Datentypen als long? Java Basics - Anfänger-Themen 2
S Abfrage Objekt-Array nach Datentypen Java Basics - Anfänger-Themen 6
B Variablen Wie macht man eine call by reference mit primitiven Datentypen in Java? Java Basics - Anfänger-Themen 2
H Mehrer Datentypen aus einer Methode ausgeben. Java Basics - Anfänger-Themen 25
O Array mit unterschiedlichen Datentypen ausgeben... Java Basics - Anfänger-Themen 16
A Generische Datentypen Java Basics - Anfänger-Themen 8
R Input/Output verschiedene Datentypen als Bytes in Datei speichern Java Basics - Anfänger-Themen 15
T ArrayList mit verschiedenen Datentypen verhindern Java Basics - Anfänger-Themen 8
N Bedingung für Datentypen Java Basics - Anfänger-Themen 3
R Array aus verschiedenen Datentypen Java Basics - Anfänger-Themen 29
J Datentypen Datentypen Java Basics - Anfänger-Themen 7
S Datentypen Array fill Methode - unterschiedliche Datentypen Java Basics - Anfänger-Themen 6
H null und primitive Datentypen Java Basics - Anfänger-Themen 6
N ArrayList mit eigenem Datentypen Java Basics - Anfänger-Themen 3
B Wie kann ich unterschiedliche Datentypen in einem Feld abbilden? Java Basics - Anfänger-Themen 5
S Datentypen Die verschiedene Java Datentypen [Anfänger] Java Basics - Anfänger-Themen 8
M Frage zu Datentypen Java Basics - Anfänger-Themen 4
B Welcher Feld Typ für verschiedene Datentypen? Java Basics - Anfänger-Themen 4
O Rückgabewert mit unterschiedlichen Datentypen Java Basics - Anfänger-Themen 10
S Nicht Primitive Datentypen Java Basics - Anfänger-Themen 5
C Verwendung von primitiven Datentypen Java Basics - Anfänger-Themen 8
Spin Eigenen Abstrakten Datentypen Java Basics - Anfänger-Themen 28
J Datentypen Rechnen mit unterschiedlichen Datentypen Java Basics - Anfänger-Themen 3
B Wieviele bits belegen die Datentypen? Java Basics - Anfänger-Themen 2
S Alle Datentypen in byte Array und zurückwandeln Java Basics - Anfänger-Themen 2
C Explizite und implizite Datentypen Java Basics - Anfänger-Themen 12
F primitive Datentypen, String, Klassen Java Basics - Anfänger-Themen 16
Povlsen84 HashSet mit eigenen Datentypen Java Basics - Anfänger-Themen 6
J Verschieden Datentypen in ein "Array" Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben