在 Java 函式中返回兩個值
在 Java 中,沒有將兩個值返回給函式的特權。解決多值返回帶來的問題,可以通過建立一個使用者定義的類來儲存輸出,或者使用內建的資料型別如 Array
,Pair
(如果只有兩個值需要返回),HashMap
和 String Array
。
在 Java 中使用 ArrayList
類返回多個值
下面是演示返回兩個以上值的 Java 函式的小程式碼塊。
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"));
}
}
在上面的程式碼中,定義了一個方法來理解 Java 中的返回功能。callFunction
方法是從 main
函式或驅動程式類呼叫的;它是 JavaReturnTwoValues
類私有的。
在函式定義中,一個 ArrayList
物件最初使用兩個值進行例項化。公共類建構函式中允許使用這些值。使用 Arrays.asList()
函式允許內聯例項化,因此,在宣告時定義值。
靜態 asList
方法返回指定為引數的已定義列表。return
關鍵字後面總是接受一個引數。如果指定了多個引數,則會引發編譯時錯誤
問題。
函式的值儲存在 list
區域性變數中。在區域性變數上,呼叫 forEach()
方法。這個指定的方法採用一個 Consumer
例項,一個具有單個 accept
程序的功能介面。這意味著它只消耗值或類,不返回任何東西。
因此,該語句從列表例項中按順序發出元素,而 forEach
方法使用這些元素在控制檯上列印值。::
是一個方法引用運算子,類似於 lambda 表示式,a-> System.out.println(a)
。
上面程式碼塊的輸出如下所示。
Hi Hello World
在 Java 中使用 Pair
類返回兩個值
下面是使用使用者定義的 Pair
類來理解其功能的程式碼塊。
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;
}
}
在上面的程式中,定義了兩個類:一個是儲存 main
或驅動程式函式的公共類,另一個是使用者定義的 Pair
類,用於在內部說明 pair 的功能。
驅動程式類具有呼叫函式和值操作過程的程式碼。callPairFunction
是一個私有方法,它返回一個 Pair
使用者定義的資料型別。該類被宣告為儲存一對值,即鍵及其值。
在主類下面是一個使用者定義的類,Pair<T1, T2>
。它通常被定義為 Java 中 Generics
的概念並在其上工作。引數 T1
和 T2
是通用資料型別,這意味著它們可以採用傳遞的資料型別的形式。在我們的例子中,字串被傳遞,所以 T1
和 T2
變成了 String
型別。
該類有一個公共建構函式,它使用傳遞的值例項化區域性變數。使用公共 getKey
和 getValue
方法,在建構函式中例項化後返回鍵和值。
在 callPairFunction
方法中,使用 new 關鍵字返回 Pair
類的一個例項。該語句呼叫類的公共建構函式並設定鍵和值變數。返回的例項用於檢索 Pair 類左側和右側的值。
下面是上面程式碼中定義的輸出。
Key I am value
值得注意的是,org.apache.commons.lang3.tuple
包也提供了一個類似的內建類供使用。Pair
是包中存在的一個類,用於儲存現有的函式和操作以處理值。
通常可以使用預定義的類來避免編寫繁瑣的程式碼和建立新的 Pair
類的開銷。此處顯示了要注入專案的依賴關係。
<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.
LinkedIn相關文章 - Java Function
- 在 Java 中返回一個布林方法
- Java 中的虛擬函式
- 在 Java 中從一個函式中返回空值
- Java 中用於垃圾回收的 System.gc()
- 在 Java 中建立回撥函式
- 修復 Java 無效方法宣告;需要返回型別