Zwei Werte in einer Java-Funktion zurückgeben
-
Rückgabe mehrerer Werte mit der Klasse
ArrayList
in Java -
Zwei Werte mit der Klasse
Pair
in Java zurückgeben
In Java gibt es keine Berechtigung, zwei Werte an eine Funktion zurückzugeben. Die Lösung des Problems, das mit Rückgaben mit mehreren Werten einhergeht, kann gelöst werden, indem entweder eine benutzerdefinierte Klasse zum Speichern der Ausgabe erstellt wird oder integrierte Datentypen wie Array
, Paar
verwendet werden (wenn nur zwei Werte zurückgegeben werden sollen ), HashMap
und String Array
.
Rückgabe mehrerer Werte mit der Klasse ArrayList
in Java
Unten ist der kleine Codeblock, um die Java-Funktionen zu demonstrieren, die mehr als zwei Werte zurückgeben.
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
ArrayList<String> list = callFunction();
list.forEach(System.out::println);
}
private static ArrayList<String> callFunction() {
return new ArrayList<>(Arrays.asList("Hi", "Hello"));
}
}
Im obigen Code ist eine Methode definiert, um die Rückgabefunktionalität in Java zu verstehen. Die Methode callFunction
wird von der Funktion main
oder der Treiberklasse aufgerufen; es ist privat für die Klasse JavaReturnTwoValues
.
In der Funktionsdefinition wird ein ArrayList
-Objekt zunächst mit zwei Werten instanziiert. Die Werte sind im öffentlichen Klassenkonstruktor zulässig. Die Verwendung der Funktion Arrays.asList()
ermöglicht die Inline-Instanziierung und damit die Definition der Werte zum Zeitpunkt der Deklaration.
Die statische Methode asList
gibt eine definierte Liste als Parameter zurück. Das Schlüsselwort return
akzeptiert immer einen einzelnen Parameter dahinter. Wenn mehr als ein Parameter angegeben wird, werden Fehler beim Kompilieren
ausgegeben.
Die Werte der Funktion werden in der lokalen Variablen list
gespeichert. Über die lokale Variable wird die Methode forEach()
aufgerufen. Diese spezifizierte Methode benötigt eine Consumer
-Instanz, eine funktionale Schnittstelle mit einem einzigen accept
-Prozess. Das bedeutet, dass es nur Werte oder Klassen verbraucht und nichts zurückgibt.
Die Anweisung gibt also die Elemente sequentiell aus der Listeninstanz aus, und die Methode forEach
konsumiert die Elemente, um die Werte auf der Konsole auszugeben. Der ::
ist ein Methodenreferenzoperator und ähnelt einem Lambda-Ausdruck a-> System.out.println(a)
.
Die Ausgabe des obigen Codeblocks wird unten gezeigt.
Hi Hello World
Zwei Werte mit der Klasse Pair
in Java zurückgeben
Unten ist der Codeblock, der die benutzerdefinierte Klasse Pair
verwendet, um ihre Funktionalität zu verstehen.
public class Main {
public static void main(String[] args) {
Pair<String, String> pair = callPairFunction();
System.out.println(pair.getKey() + " " + pair.getValue());
}
private static Pair<String, String> callPairFunction() {
return new Pair<String, String>("Key", "I am value");
}
}
class Pair<T1, T2> {
private final T1 key;
private final T2 value;
public Pair(T1 first, T2 second) {
this.key = first;
this.value = second;
}
public T1 getKey() {
return key;
}
public T2 getValue() {
return value;
}
}
Im obigen Programm sind zwei Klassen definiert: Eine ist die öffentliche Klasse, die die main
- oder Treiberfunktion enthält, und die andere ist die benutzerdefinierte Klasse Pair
, um die Funktionalität des Paares intern zu veranschaulichen.
Die Treiberklasse verfügt über Code zum Aufrufen des Funktions- und Wertmanipulationsprozesses. Die callPairFunction
ist eine private Methode, die einen benutzerdefinierten Pair
-Datentyp zurückgibt. Die Klasse wird so deklariert, dass sie ein Wertepaar speichert, das der Schlüssel und sein Wert ist.
Unterhalb der Hauptklasse befindet sich eine benutzerdefinierte Klasse Pair<T1, T2>
. Es ist generisch definiert als und arbeitet nach dem Konzept von Generics
in Java. Die Parameter T1
und T2
sind generische Datentypen, dh sie können die Form des übergebenen Datentyps annehmen. In unserem Fall wird der String übergeben, sodass T1
und T2
vom Typ String
werden.
Die Klasse verfügt über einen öffentlichen Konstruktor, der die lokalen Variablen mit den übergebenen Werten instanziiert. Mit den öffentlichen Methoden getKey
und getValue
werden Schlüssel und Wert zurückgegeben, nachdem sie im Konstruktor instanziiert wurden.
In der Methode callPairFunction
wird eine Instanz der Klasse Pair
mit einem neuen Schlüsselwort zurückgegeben. Die Anweisung ruft den öffentlichen Konstruktor der Klasse auf und setzt die Schlüssel- und Wertvariablen. Die zurückgegebene Instanz wird verwendet, um die Werte auf der linken und rechten Seite der Pair-Klasse abzurufen.
Unten ist die Ausgabe, die im obigen Code definiert ist.
Key I am value
Bemerkenswert ist, dass das Paket org.apache.commons.lang3.tuple
auch eine ähnliche eingebaute Klasse zur Verwendung bereitstellt. Pair
ist eine im Paket vorhandene Klasse, die vorhandene Funktionen und Operationen enthält, um an den Werten zu arbeiten.
Man kann oft eine vordefinierte Klasse verwenden, um das Schreiben des umständlichen Codes zu vermeiden und den Aufwand für das Erstellen einer neuen Pair
-Klasse zu haben. Hier wird die Abhängigkeit zur Injektion im Projekt angezeigt.
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-configuration2</artifactId>
<version>2.7</version>
</dependency>
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedInVerwandter Artikel - Java Function
- Rückgabe einer booleschen Methode in Java
- Kovarianter Rückgabetyp in Java
- Schreiben Sie eine anonyme Funktion in Java
- Nichts von einer Funktion in Java zurückgeben
- Virtuelle Funktion in Java
- Java Fehler Invalid Method Declaration; Return Type Required beheben