📅  最后修改于: 2020-03-30 04:47:11             🧑  作者: Mango
Java不支持多值返回。我们可以使用以下解决方案返回多个值。
我们可以用Java返回一个数组。下面是一个演示相同内容的Java程序。
// Java返回一个数组,同一类型的多个值
class Test {
// 返回数组元素
// 第一个元素a+b,第二个元素a-b
static int[] getSumAndSub(int a, int b)
{
int[] ans = new int[2];
ans[0] = a + b;
ans[1] = a - b;
// 返回数组元素
return ans;
}
// 测试代码
public static void main(String[] args)
{
int[] ans = getSumAndSub(100, 50);
System.out.println("Sum = " + ans[0]);
System.out.println("Sub = " + ans[1]);
}
}
输出:
Sum = 150
Sub = 50
如果返回的元素属于不同类型
使用Pair(如果只有两个返回值)
我们可以在Java中使用Pair返回两个值。
// 使用Pair
import javafx.util.Pair;
class GfG {
public static Pair getTwo()
{
return new Pair(10, "芒果文档");
}
// 返回Java 8的多个值
public static void main(String[] args)
{
Pair p = getTwo();
System.out.println(p.getKey() + " " + p.getValue());
}
}
如果返回的值多于两个,我们可以将所有返回的类型封装到一个类中,然后返回该类的一个对象。
让我们看看下面的代码。
// Java展示可以将所有返回的类型封装到一个类中,然后返回该类的一个对象
class MultiDivAdd {
int mul; // 保存 乘法
double div; // 保存 除法
int add; // 保存 加法
MultiDivAdd(int m, double d, int a)
{
mul = m;
div = d;
add = a;
}
}
class Test {
static MultiDivAdd getMultDivAdd(int a, int b)
{
// 返回多个不同的值
return new MultiDivAdd(a * b, (double)a / b, (a + b));
}
// 测试代码
public static void main(String[] args)
{
MultiDivAdd ans = getMultDivAdd(10, 20);
System.out.println("乘法 = " + ans.mul);
System.out.println("除法 = " + ans.div);
System.out.println("加法 = " + ans.add);
}
}
输出:
乘法 = 200
除法 = 0.5
加法 = 30
返回对象类列表List
// Java对象类列表List
import java.util.*;
class GfG {
public static List
输出:
[芒果, 35, M]