在 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 无效方法声明;需要返回类型