Methoden Umwandlung in generische Methode

vaults

Mitglied
Moin Leute,

ich soll folgende Methode in eine generische vom Datentyp T umwandeln:
Java:
public static int maximum(int[] a) {
		assert a!= null && a.length > 0;
		int max = a[0];
		for (int i = 1; i < a.length; i++) {
			if (a[i] > max) max = a[i];
		}
		return max;
		}

Ich weiß das ich den variablen Typ, in diesem Fall int[] a durch einen Typparameter ersetzen soll, in diesem Fall soll er T heißen.

Bisher habe ich:
Java:
public static <T> int maximum(T[] a) {
		assert a!= null && a.length > 0;
		T max = a[0];
		for (int i = 1; i < a.length; i++) {
			if (a[i] > max) max = a[i];
		}
		return max;
	}

Leider habe ich immernoch zwei Warnungen.
Zum einen gefällt dem Compiler der return Wert max nicht.
Zum anderen gefällt ihm der Vergleich a > max nicht.

Vielleicht kann mir jemand helfen und sagen was ich noch umschreiben muss, und worauf ich bei der Konvertierung auf generische Methoden achten muss.

Liebe Grüße,
Alex
 
S

SlaterB

Gast
vergiss doch erstmal generisch T und versuche die Methode für eine konkrete Klasse wie String zu programmieren,
int als primitiver Datentyp ist eine schlechte Vergleichsgrundlage
 

AlexSpritze

Bekanntes Mitglied
Das mindeste was als Eingabeparameter akzeptiert werden sollte sind Objeke vom Typ Comparable, weil diese kann man vergleichen über die Methode compareTo(Object), und damit herausfinden, welches das größte ist. Dementsprechend reicht nur T nicht aus. String implementiert z.B. Comparable.

Damit könntest du dann die Schleife umschreiben:

Java:
 Comparable max = a[0];
...
        for (int i = 1; i < a.length; i++) {
            if (a[i].compareTo(max) < 0) max = a[i];
        }
...
 
T

Tomate_Salat

Gast

vaults

Mitglied
Vielen Dank für die Antworten.
Der offizielle Klausurtext lautet:
Schreiben Sie die Methode als generische Methode, die als Parameter ein Feld von
Elementen des Typs T erhält. Stellen Sie sicher, dass T die benötigten Operationen zur
Verfügung stellt, so dass beim Übersetzen keine Fehlermeldungen oder Warnungen
entstehen.

Die Methode ist jetzt dank der Tipps leicht umgeschrieben auf:
Java:
public static <T implements Comparable> T maximum(T[] a) {
		assert a!= null && a.length > 0;
		Comparable max = a[0];
		for (int i = 1; i < a.length; i++) {
			if (a[i] > max) max = a[i];
		}
		return max;
	}

Allerdings bekomme ich jetzt in Zeile 1 eine Fehlermeldung "Syntax error on Token "implements".

Liebe Grüße,
Alex
 

vaults

Mitglied
Moin,

danke für den Link, das Kopfproblem hat der Thread erledigt. Habe den Kopf jetzt angepasst:
Java:
public static <T extends Comparable<T>> T maximum(T[] a)

Allerdings gefällt ihm weiterhin der Vergleich (a > max) nicht.
Ist auch nachzuvollziehen, da ich hier einen IntWert mit einem Wert vom Typ T vergleichen will.
Alleridings habe ich keine Ahnung wie ich das Problem lösen kann.

LG,
Alex
 
S

SlaterB

Gast
warum schreibst du denn [c]T extends Comparable<T>[/c], mal abgesehen davon dass andere es vorschlagen?

sagt dir Comparable gar nichts, hast du keinen Antrieb diese Klasse in einem Lehrbuch bzw. in der API nachzuschlagen?
wenn dir die Funktion von Comparable klar wird, ist offensichtlich Vergleichen nicht mehr ein Problem

die Lösung steht übrigens auch schon in diesem Thread, schau dir alle Antworten genau an,
probiere deren Code aus usw.
 
T

Tomate_Salat

Gast
Die Lösung für dieses Problem wurde doch schon gepostet: sieh AlexSpritze's Beitrag.

Da es eh schon eigentl. hier steht:
Java:
public static <T extends Comparable<T>> T maximum(T[] data) {
	T max=data[0]; // hier sollte vorher noch eine Überprüfung: siehe dein erster Post
	
	for(int i=1;i<data.length;i++) {
		if(data[i].compareTo(max) > 0 )
			max=data[i];
	}
	
	return max;
}

Edit in dem Thread hab ichs mit 3Minuten verzögerter Antwort zum vorposter, was? :joke: :applaus:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
Jose05 Nullpointerexception bei Umwandlung von String zu int Java Basics - Anfänger-Themen 2
J Umwandlung String zu ASCII-Wert und anders Java Basics - Anfänger-Themen 17
M Operatoren Umwandlung div. Operatoren Java Basics - Anfänger-Themen 7
B Date - Umwandlung OffsetDateTime Java Basics - Anfänger-Themen 11
J Probleme bei der Umwandlung einer Farbe von Hex zu RGB Java Basics - Anfänger-Themen 8
J Umwandlung for-Schleife Java Basics - Anfänger-Themen 10
R Fehler bei ASCII Char zu Int Umwandlung Java Basics - Anfänger-Themen 2
M Umwandlung von StringArray in String Java Basics - Anfänger-Themen 2
P Umwandlung in Javacode Java Basics - Anfänger-Themen 10
M Umwandlung String zu int Java Basics - Anfänger-Themen 2
M Umwandlung von Array zu ArrayList Java Basics - Anfänger-Themen 7
S Umwandlung Binär in Dezimal (ohne array etc.) Java Basics - Anfänger-Themen 6
L Interface JOptionPane Umwandlung Java Basics - Anfänger-Themen 10
A Char Bytes Umwandlung und Darstellung Java Basics - Anfänger-Themen 3
K Datentypen Umwandlung einer Textfeldeingabe in einen binären Wert Java Basics - Anfänger-Themen 2
G Umwandlung in verschiedene Zahlensysteme Java Basics - Anfänger-Themen 4
L Umwandlung von String to Int funktioniert nciht Java Basics - Anfänger-Themen 3
J Datentypen Umwandlung von Arraylist in ein StringArray Java Basics - Anfänger-Themen 10
J Datentypen Umwandlung von Kommazahl in Punktzahl Locale DE auf US Java Basics - Anfänger-Themen 5
A Umwandlung einer Datei ins int Java Basics - Anfänger-Themen 26
A Umwandlung gcj -> java Java Basics - Anfänger-Themen 4
F Umwandlung vom Dezimalsystem Java Basics - Anfänger-Themen 7
M Umwandlung von Array in Vector und umgekehrt Java Basics - Anfänger-Themen 6
N Umwandlung String - double für mehrdimensionalen array Java Basics - Anfänger-Themen 2
L Umwandlung int <--> byte Java Basics - Anfänger-Themen 2
S Umwandlung von Integer zu String Java Basics - Anfänger-Themen 4
F Datentypen Umwandlung int in String Java Basics - Anfänger-Themen 6
Screen Kurze Frage Umwandlung von Zahlen Java Basics - Anfänger-Themen 2
A Umwandlung int[][][] in String Java Basics - Anfänger-Themen 7
A umwandlung biginteger in int[] Java Basics - Anfänger-Themen 9
A einlesen, schreiben, umwandlung datentyp Java Basics - Anfänger-Themen 10
J Wrapperklasse und ihre Umwandlung Java Basics - Anfänger-Themen 2
Screen Erklärung von der Umwandlung von .class in .jar o. .exe ! Java Basics - Anfänger-Themen 5
Semox Umwandlung von Sonderzeichen in HTML-Datei mit Ausgabe Java Basics - Anfänger-Themen 7
B Umwandlung gemäß Package-Anweisung Java Basics - Anfänger-Themen 5
$ Umwandlung von Schleifen in andere Java Basics - Anfänger-Themen 4
S Problem bei Umwandlung ins Hexadezimalsystem Java Basics - Anfänger-Themen 2
D Umwandlung char -> dezimalzahl und ausgabe als int Java Basics - Anfänger-Themen 5
G Umwandlung Java Basics - Anfänger-Themen 7
A String to Char Umwandlung. Java Basics - Anfänger-Themen 7
R "Umwandlung" SQL-Result in Objekt Java Basics - Anfänger-Themen 5
H Umwandlung von Zahlensystemen Java Basics - Anfänger-Themen 7
E Umwandlung von std, min und sek Java Basics - Anfänger-Themen 2
G Probleme mit Colour und Color, umwandlung möglich? Java Basics - Anfänger-Themen 5
J Umwandlung von Integer in Char Java Basics - Anfänger-Themen 8
Z Problem bei sql-date-Umwandlung Java Basics - Anfänger-Themen 2
T String als Array und Umwandlung in Char Java Basics - Anfänger-Themen 7
R Umwandlung Java Basics - Anfänger-Themen 35
G Frage zu Umwandlung char[] in string[] bzw. Schleifen Java Basics - Anfänger-Themen 9
S Umwandlung eines Character-Streams in ein Image Java Basics - Anfänger-Themen 17
N x.toString(x); umwandlung von long in String Java Basics - Anfänger-Themen 3
F Umwandlung von String in Integer Java Basics - Anfänger-Themen 3
S Umwandlung von int in String Java Basics - Anfänger-Themen 3
J Warum funktioniert meine Umwandlung nicht? Java Basics - Anfänger-Themen 3
I Generische Funktion Java Basics - Anfänger-Themen 3
B Generische Typen für dynamisches Formular Java Basics - Anfänger-Themen 3
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
H Generische Konstruktor Java Basics - Anfänger-Themen 12
Kirby.exe Generische Objekt Instanz erstellen Java Basics - Anfänger-Themen 14
D Generische Klasse Java Basics - Anfänger-Themen 6
H linkedlist generische klassen Java Basics - Anfänger-Themen 169
M Datentypen Generische Datentypen - Syntax Java Basics - Anfänger-Themen 25
O Generische Typen Java Basics - Anfänger-Themen 9
M Generische Klassen "FlaschenRegal" Java Basics - Anfänger-Themen 13
Queiser Datentypen 2 generische Datentypen für eine Schnittstelle Java Basics - Anfänger-Themen 1
M Generische Liste aus Comparable-Objekten Java Basics - Anfänger-Themen 6
J Sortierte generische Liste Java Basics - Anfänger-Themen 1
D statische generische Methoden Java Basics - Anfänger-Themen 3
S Wie muss ich die Generische Methode schreiben? Java Basics - Anfänger-Themen 6
M Methoden Generische Klasse - ändern einzelner Attributwerte Java Basics - Anfänger-Themen 2
S generische methode mit verschiedenen datentypen Java Basics - Anfänger-Themen 3
N Generische Schnittstellen Java Basics - Anfänger-Themen 2
B generische LinkedList nach Häufigkeit der Elemente füllen Java Basics - Anfänger-Themen 6
D Generische Typen Java Basics - Anfänger-Themen 20
S Erste Schritte Generische Klassen sind toll ....aber warum sollte ich das je benutzen? Java Basics - Anfänger-Themen 3
L Generische Liste Java Basics - Anfänger-Themen 4
B Generische Queue programmieren Java Basics - Anfänger-Themen 5
S Generische Methode soll Objekte als Parameter erlauben die bestimmtes Interface implementieren^ Java Basics - Anfänger-Themen 9
A Probleme mit MergeSort Generische Liste Java Basics - Anfänger-Themen 0
A Generische Methode Java Basics - Anfänger-Themen 4
H Collections List in List<SpecificType> als stat. generische Methode zurückgeben Java Basics - Anfänger-Themen 4
J Probleme mit static generische Klasse Java Basics - Anfänger-Themen 6
M Generische Liste Java Basics - Anfänger-Themen 4
B Generische Methode Java Basics - Anfänger-Themen 2
B Generische Klasse Java Basics - Anfänger-Themen 7
B Generische Methoden Java Basics - Anfänger-Themen 8
F Collections Generische Klasse/Methoden Java Basics - Anfänger-Themen 19
L Generische Warteschlange Java Basics - Anfänger-Themen 8
A Generische Datentypen Java Basics - Anfänger-Themen 8
bluerob generische ArrayList -> erbende Objekte auslesen Java Basics - Anfänger-Themen 24
L Generische Containerklasse Java Basics - Anfänger-Themen 9
A Generische Collections und Vererbung Java Basics - Anfänger-Themen 2
S Generische HashMap Java Basics - Anfänger-Themen 2
M Klassen Generische Klassen, Personen und Gruppen Java Basics - Anfänger-Themen 6
L Generische ArrayList, CastProblem Java Basics - Anfänger-Themen 2
W generische Module Java Basics - Anfänger-Themen 2
S Generics und "generische Feldzuweisungen" Java Basics - Anfänger-Themen 5
C unterschied generische typen und supertypen als methodenparameter Java Basics - Anfänger-Themen 3
D Datentypen Generische Collections und Warnings Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben