在 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>
相关文章
如何在 Java 中延迟几秒钟的时间
发布时间:2023/12/17 浏览次数:217 分类:Java
-
本篇文章主要介绍如何在 Java 中制造程序延迟。本教程介绍了如何在 Java 中制造程序延时,并列举了一些示例代码来了解它。
如何在 Java 中把 Hashmap 转换为 JSON 对象
发布时间:2023/12/17 浏览次数:187 分类:Java
-
它描述了允许我们将哈希图转换为简单的 JSON 对象的方法。本文介绍了在 Java 中把 Hashmap 转换为 JSON 对象的方法。我们将看到关于创建一个 hashmap,然后将其转换为 JSON 对象的详细例子。
如何在 Java 中按值排序 Map
发布时间:2023/12/17 浏览次数:171 分类:Java
-
本文介绍了如何在 Java 中按值对 Map 进行排序。本教程介绍了如何在 Java 中按值对 Map
进行排序,并列出了一些示例代码来理解它。
如何在 Java 中打印 HashMap
发布时间:2023/12/17 浏览次数:192 分类:Java
-
本帖介绍了如何在 Java 中打印 HashMap。本教程介绍了如何在 Java 中打印 HashMap 元素,还列举了一些示例代码来理解这个主题。
在 Java 中更新 Hashmap 的值
发布时间:2023/12/17 浏览次数:146 分类:Java
-
本文介绍了如何在 Java 中更新 HashMap 中的一个值。本文介绍了如何在 Java 中使用 HashMap 类中包含的两个方法-put() 和 replace() 更新 HashMap 中的值。
Java 中的 hashmap 和 map 之间的区别
发布时间:2023/12/17 浏览次数:79 分类:Java
-
本文介绍了 Java 中的 hashmap 和 map 接口之间的区别。本教程介绍了 Java 中 Map 和 HashMap 之间的主要区别。在 Java 中,Map 是用于以键值对存储数据的接口,
在 Java 中获取用户主目录
发布时间:2023/12/17 浏览次数:218 分类:Java
-
这篇文章向你展示了如何在 Java 中获取用户主目录。本教程介绍了如何在 Java 中获取用户主目录,并列出了一些示例代码以指导你完成该主题。
Java 中 size 和 length 的区别
发布时间:2023/12/17 浏览次数:179 分类:Java
-
这篇文章教你如何知道 Java 中大小和长度之间的区别。本教程介绍了 Java 中大小和长度之间的区别。我们还列出了一些示例代码以帮助你理解该主题。
Java 中的互斥锁
发布时间:2023/12/17 浏览次数:111 分类:Java
-
了解有关 Java 中互斥锁的一切,在计算机科学领域,互斥或互斥被称为并发控制的属性。每台计算机都使用称为线程的最小程序指令序列。有一次,计算机在一个线程上工作。为了更好地理解,