logo

Kelių reikšmių grąžinimas Java

Java nepalaiko kelių grąžinimo reikšmių. Tačiau kartais reikia grąžinti kelias reikšmes. Tam galime naudoti šiuos sprendimus.

1 atvejis: jei visos grąžintos reikšmės yra vienodos

Jei visos reikšmės, kurias reikia grąžinti, yra vienodos, galime naudoti masyvą. Pavyzdžiui, pateikiami du skaičiai, kuriuos reikia sudėti, atimti, dauginti ir padalyti. Tokiu atveju galime naudoti masyvą. Stebėkite šią programą.

tat pilna forma

Failo pavadinimas: 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]); } } 

Išvestis:

 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 

Sudėtingumo analizė: Kadangi programa naudoja for-ciklą elementų sumai apskaičiuoti, programos laiko sudėtingumas yra O(n), kur n yra bendras masyve esančių elementų skaičius. Programos erdvės sudėtingumas yra pastovus, ty O(1).

2 atvejis: jei turime grąžinti dvi skirtingų tipų reikšmes

Jei turime dvi skirtingų tipų reikšmes, galime naudoti Pair.

Failo pavadinimas: 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()); } } 

Išvestis:

 JavaTpoint 100 

3 atvejis: jei turime grąžinti daugiau skirtingų tipų verčių

Tokiu atveju galime naudoti klasę. Stebėkite šią programą.

b plius medis

Failo pavadinimas: 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); } } 

Išvestis:

 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