logo

Returnarea mai multor valori în Java

Java nu acceptă mai multe valori returnate. Cu toate acestea, uneori este necesar să returnați mai multe valori. Pentru aceasta, putem folosi următoarele soluții.

Cazul 1: Dacă toate valorile returnate sunt aceleași

Dacă toate valorile care trebuie returnate sunt aceleași, atunci putem folosi o matrice. De exemplu, sunt date două numere și este necesar să se efectueze adunarea, scăderea, înmulțirea și împărțirea acestor numere. Într-un astfel de scenariu, putem folosi o matrice. Respectați următorul program.

centos vs redhat

Nume de fișier: 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]); } } 

Ieșire:

 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 

Analiza complexității: Deoarece programul folosește o buclă for pentru a calcula suma elementelor, complexitatea de timp a programului este O(n), unde n este numărul total de elemente prezente în matrice. Complexitatea spațială a programului este constantă, adică O(1).

Cazul 2: Dacă trebuie să returnăm două valori de tipuri diferite

În cazul în care avem cele două valori ale diferitelor tipuri, putem folosi Pair.

Nume de fișier: 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()); } } 

Ieșire:

 JavaTpoint 100 

Cazul 3: Dacă trebuie să returnăm mai multe valori de diferite tipuri

În acest caz, putem folosi o clasă. Respectați următorul program.

tip java de variabilă

Nume de fișier: 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); } } 

Ieșire:

 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