logo

Meerdere waarden retourneren in Java

Java ondersteunt geen meerdere retourwaarden. Soms is het echter vereist om meerdere waarden te retourneren. Daarvoor kunnen we de volgende oplossingen gebruiken.

Geval 1: Als alle geretourneerde waarden hetzelfde zijn

Als alle waarden die moeten worden geretourneerd hetzelfde zijn, kunnen we een array gebruiken. Er worden bijvoorbeeld twee getallen gegeven en het is nodig om op deze getallen op te tellen, af te trekken, te vermenigvuldigen en te delen. In een dergelijk scenario kunnen we een array gebruiken. Neem het volgende programma in acht.

Java is leeg

Bestandsnaam: ReturnMultipleValues.java

 public class ReturnMultipleValues { // a method that performs basic arithmetic // operations (+, - , *, /) on number a and b public int[] performBasicArithOp(int a, int b) { int add = a + b; int substract = a - b; int multiply = a * b; int divide = a / b; int ans[] = new int[4]; ans[0] = add; ans[1] = substract; ans[2] = multiply; ans[3] = divide; return ans; } // main method public static void main(String[] argvs) { // creating an object of the class ReturnMultipleValues ReturnMultipleValues obj = new ReturnMultipleValues(); // input 1 int n1 = 6; int n2 = 3; int ans[] = obj.performBasicArithOp(n1, n2); System.out.println('The sum of numbers ' + n1 + ' and ' + n2 + ' is: ' + ans[0]); System.out.println('The difference of numbers ' + n1 + ' and ' + n2 + ' is: ' + ans[1]); System.out.println('The multiplication of numbers ' + n1 + ' and ' + n2 + ' is: ' + ans[2]); System.out.println('The division of numbers ' + n1 + ' and ' + n2 + ' is: ' + ans[3]); } } 

Uitgang:

 The sum of numbers 6 and 3 is: 9 The difference of numbers 6 and 3 is: 3 The multiplication of numbers 6 and 3 is: 18 The division of numbers 6 and 3 is: 2 

Complexiteitsanalyse: Omdat het programma een for-lus gebruikt voor het berekenen van de som van elementen, is de tijdscomplexiteit van het programma O(n), waarbij n het totale aantal elementen is dat in de array aanwezig is. De ruimtecomplexiteit van het programma is constant, dat wil zeggen O(1).

Geval 2: Als we twee waarden van verschillende typen moeten retourneren

Als we de twee waarden van de verschillende typen hebben, kunnen we Pair gebruiken.

Bestandsnaam: ReturnMultipleValues1.java

 // creating our own Pair Class class Pair { private final X k; private final Y v; public Pair(X k, Y v) { this.k = k; this.v = v; } public X retrieveKey() { return this.k; } public Y retrieveVal() { return this.v; } } public class ReturnMultipleValues1 { // the foo() method returns two values and // that too of different types public Pair foo() { return new Pair('JavaTpoint', 100); } // main method public static void main(String[] argvs) { // creating an object of the class ReturnMultipleValues1 ReturnMultipleValues1 obj = new ReturnMultipleValues1(); Pair p = obj.foo(); System.out.println(p.retrieveKey() + ' ' + p.retrieveVal()); } } 

Uitgang:

 JavaTpoint 100 

Geval 3: Als we meer waarden van verschillende typen moeten retourneren

In dat geval kunnen we een klasse gebruiken. Neem het volgende programma in acht.

selenium tutorial java

Bestandsnaam: ArithmeticOperation.java

 class ArithmeticOperation { int m; // for storing multiplication double d; // for storing division int a; // for storing addition String s; // constructor of the class ArithmeticOperation(int mul, double div, int add, String str) { m = mul; d = div; a = add; s = str; } } public class ReturnMultipleValues2 { public ArithmeticOperation getMultDivAdd(int n1, int n2) { // creating and returning object of ArithmeticOperation that contains multiple values return new ArithmeticOperation(n1 * n2, (double)n1 / n2, n1 + n2, 'Performing Arithmetic Operation'); } // main method public static void main(String[] argvs) { int n1 = 29; int n2 = 20; // creating an object of the class ArithmeticOperation ArithmeticOperation obj = (new ReturnMultipleValues2()).getMultDivAdd(n1, n2); System.out.println('Statement: ' + obj.s); System.out.println('The Multiplication of the numbers ' + n1 + ' and ' + n2 + ' is: ' + obj.m); System.out.println('The Division of the numbers ' + n1 + ' and ' + n2 + ' is: ' + obj.d); System.out.println('The Addition of the numbers ' + n1 + ' and ' + n2 + ' is: ' + obj.a); } } 

Uitgang:

 Statement: Performing Arithmetic Operation The Multiplication of the numbers 29 and 20 is: 580 The Division of the numbers 29 and 20 is: 1.45 The Addition of the numbers 29 and 20 is: 49