Java: Zwei Werte returnen?


23.06.2022, 18:00

neu

4 Antworten

Als Array oder (ich weiß nicht, ob Java es auch unterstützt) als tuple, aber am besten wäre eine Klasse/strukt, die genau dafür ist

du brauchst dafür java17 oder bibliotheken

das stichwort ist Tuple

java hat ab 17 offizielle unterstützung dafür in der form von named tuples bzw. records

record T2(int i, int j) {
}

return new T2(i, j);

Das geht in Java nicht direkt. Eine Funktion gibt immer nur eine Variable zurück. Du kannst aber z.B. i und j in einem Array speichern und dieses Array zurückgeben. Dein Funktionskopf sieht auch schon danach aus das du sowas machen wolltest. Da dort als Rückgabetyp ein Integer-Array angegeben ist.

Mit folgenden Code erstellst du ein Array das i und j beinhaltet. Dieses kannst du dann zurückgeben:

int[] result = {i, j};

Ich hoffe ich konnte dir damit weiterhelfen.

Woher ich das weiß:Studium / Ausbildung

bschbaum 
Beitragsersteller
 23.06.2022, 18:00

ok meinst du so

0
QuietMaths  23.06.2022, 18:05
@bschbaum

Naja du beachtest hier nicht den Scope deiner Variablen.

Schreibe am Anfang deines Codes folgendes:

int i2 = 0;
int j2 = 0;

Dann kommt in die for-Schleife folgendes:

i2 = i;
j2 = j;

Dann nach der for-Schleife:

int[] result = {i2, j2};
return result;
0

Geht in Java nicht ohne weiteres du müsstest die Werte beispielsweise in einer neuen Klasse wrappen die diese beiden als variable enthält und dann das Objekt returnen


bschbaum 
Beitragsersteller
 23.06.2022, 17:57

wie würde das aussehen?

0
magicced01  23.06.2022, 18:01
@bschbaum

class Pair {

Int wert1

Int wert2

Konstruktor

Getter und Setter

}

Und dann halt new Pair(i,j)

0