Java birden fazla dönüş değerini desteklemez. Ancak bazen birden fazla değer döndürmek gerekebilir. Bunun için aşağıdaki çözümleri kullanabiliriz.
Durum 1: Döndürülen değerlerin tümü aynıysa
Döndürülmesi gereken tüm değerler aynıysa dizi kullanabiliriz. Örneğin iki sayı veriliyor ve bu sayılar üzerinde toplama, çıkarma, çarpma ve bölme işlemleri yapılması gerekiyor. Böyle bir senaryoda bir dizi kullanabiliriz. Aşağıdaki programı izleyin.
klavyelerde kaç tuş var
Dosya adı: 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]); } }
Çıktı:
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
Karmaşıklık Analizi: Program, öğelerin toplamını hesaplamak için bir for döngüsü kullandığından, programın zaman karmaşıklığı O(n)'dir; burada n, dizide bulunan öğelerin toplam sayısıdır. Programın uzay karmaşıklığı sabittir, yani O(1).
Durum 2: Farklı türde iki değer döndürmemiz gerekiyorsa
Farklı türden iki değere sahip olmamız durumunda Pair'i kullanabiliriz.
Dosya adı: 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()); } }
Çıktı:
JavaTpoint 100
Durum 3: Farklı türden daha fazla değer döndürmemiz gerekiyorsa
Bu durumda bir sınıf kullanabiliriz. Aşağıdaki programı izleyin.
java dize ekleme
Dosya adı: 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); } }
Çıktı:
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