logo

إرجاع قيم متعددة في جافا

لا تدعم Java قيم الإرجاع المتعددة. ومع ذلك، في بعض الأحيان يكون مطلوبًا إرجاع قيم متعددة. ولهذا يمكننا استخدام الحلول التالية.

الحالة 1: إذا كانت جميع القيم التي تم إرجاعها متماثلة

إذا كانت جميع القيم التي يجب إرجاعها هي نفسها، فيمكننا استخدام مصفوفة. على سبيل المثال، يتم إعطاء رقمين، ويلزم إجراء عمليات الجمع والطرح والضرب والقسمة على هذه الأرقام. في مثل هذا السيناريو، يمكننا استخدام مصفوفة. لاحظ البرنامج التالي

mvc في إطار الربيع

اسم الملف: 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]); } } 

انتاج:

 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 

تحليل التعقيد: نظرًا لأن البرنامج يستخدم حلقة for-loop لحساب مجموع العناصر، فإن التعقيد الزمني للبرنامج هو O(n)، حيث n هو العدد الإجمالي للعناصر الموجودة في المصفوفة. التعقيد المكاني للبرنامج ثابت، أي O(1).

الحالة 2: إذا كان علينا إرجاع قيمتين من نوعين مختلفين

في حالة وجود قيمتين من النوعين المختلفين، يمكننا استخدام Pair.

اسم الملف: 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()); } } 

انتاج:

 JavaTpoint 100 

الحالة 3: إذا كان علينا إرجاع المزيد من القيم من أنواع مختلفة

في هذه الحالة، يمكننا استخدام فئة. لاحظ البرنامج التالي

بايثون حفظ json إلى ملف

اسم الملف: عملية حسابية.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); } } 

انتاج:

 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