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