在Java中返回多个值
Java不支持多值返回。我们可以使用以下解决方案来返回多个值。
如果所有返回的元素都是同一类型
我们可以在Java中返回一个数组。下面是一个演示相同的Java程序。
// A Java program to demonstrate that a method
// can return multiple values of same type by
// returning an array
class Test {
// Returns an array such that first element
// of array is a+b, and second element is a-b
static int[] getSumAndSub(int a, int b)
{
int[] ans = new int[2];
ans[0] = a + b;
ans[1] = a - b;
// returning array of elements
return ans;
}
// Driver method
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 来返回两个值。
// Returning a pair of values from a function
import javafx.util.Pair;
class GfG {
public static Pair getTwo()
{
return new Pair(10, "GeeksforGeeks");
}
// Return multiple values from a method in Java 8
public static void main(String[] args)
{
Pair p = getTwo();
System.out.println(p.getKey() + " " + p.getValue());
}
}
如果有两个以上的返回值
我们可以将所有返回的类型封装到一个类中,然后返回该类的一个对象。
让我们看看下面的代码。
// A Java program to demonstrate that we can return
// multiple values of different types by making a class
// and returning an object of class.
// A class that is used to store and return
// three members of different types
class MultiDivAdd {
int mul; // To store multiplication
double div; // To store division
int add; // To store addition
MultiDivAdd(int m, double d, int a)
{
mul = m;
div = d;
add = a;
}
}
class Test {
static MultiDivAdd getMultDivAdd(int a, int b)
{
// Returning multiple values of different
// types by returning an object
return new MultiDivAdd(a * b, (double)a / b, (a + b));
}
// Driver code
public static void main(String[] args)
{
MultiDivAdd ans = getMultDivAdd(10, 20);
System.out.println("Multiplication = " + ans.mul);
System.out.println("Division = " + ans.div);
System.out.println("Addition = " + ans.add);
}
}
输出:
Multiplication = 200
Division = 0.5
Addition = 30
对象类的返回列表
// Java program to demonstrate return of
// multiple values from a function using
// list Object class.
import java.util.*;
class GfG {
public static List
输出:
[Geek, 35, M]