How to return multiple values in Java

 

If all returned elements are of the same type

We can return an array in Java. Below may be a Java program to demonstrate an equivalent.

// 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]);
	}
}

Output:

Sum = 150
Sub = 50

If returned elements are of different types

We can use Pair in Java to return two values.

// 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());
	}
}

If there are more than two returned values

We can encapsulate all returned types into a category then return an object of that class.

Let us have a glance at the subsequent code.

// 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);
	}
}

Output:

Multiplication = 200
Division = 0.5
Addition = 30

Returning list of Object Class

// Java program to demonstrate return of
// multiple values from a function using
// list Object class.
import java.util.*;

class GfG {
	public static List 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 person = getDetails();
		System.out.println(person);
	}
}




Submit Your Programming Assignment Details