在Java中返回多个值

Java不支持多值返回。我们可以使用以下解决方案返回多个值。

null

如果所有返回的元素都是相同类型的

我们可以用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中配对 返回两个值。

// Returning a pair of values from a function
import javafx.util.Pair;
class GfG {
public static Pair<Integer, String> getTwo()
{
return new Pair<Integer, String>( 10 , "GeeksforGeeks" );
}
// Return multiple values from a method in Java 8
public static void main(String[] args)
{
Pair<Integer, String> 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<Object> getDetails()
{
String name = "Geek" ;
int age = 35 ;
char gender = 'M' ;
return Arrays.asList(name, age, gender);
}
// Driver code
public static void main(String[] args)
{
List<Object> person = getDetails();
System.out.println(person);
}
}


输出:

[Geek, 35, M]

本文由 闪烁泰吉 .如果你喜欢GeekSforgek,并且想贡献自己的力量,你也可以写一篇文章,并将文章邮寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写评论

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享