Devolviendo múltiples valores en Java

Java no admite devoluciones de varios valores. Podemos usar las siguientes soluciones para devolver múltiples valores.

Si todos los elementos devueltos son del mismo tipo

Podemos devolver una array en Java. A continuación se muestra un programa Java para demostrar lo mismo.

// A Java program to demonstrate that a method
// can return multiple values of same type by
// returning an array
class Test {
    // Returns an array such that first element
    // of array is a+b, and second element is a-b
    static int[] getSumAndSub(int a, int b)
    {
        int[] ans = new int[2];
        ans[0] = a + b;
        ans[1] = a - b;
  
        // returning array of elements
        return ans;
    }
  
    // Driver method
    public static void main(String[] args)
    {
        int[] ans = getSumAndSub(100, 50);
        System.out.println("Sum = " + ans[0]);
        System.out.println("Sub = " + ans[1]);
    }
}
Producción:

Sum = 150
Sub = 50

Si los elementos devueltos son de diferentes tipos

Uso de Pair (si solo hay dos valores devueltos)
Podemos usar Pair en Java para devolver dos valores.

// Returning a pair of values from a function
import javafx.util.Pair;
  
class GfG {
    public static Pair<Integer, String> getTwo()
    {
        return new Pair<Integer, String>(10, "GeeksforGeeks");
    }
  
    // Return multiple values from a method in Java 8
    public static void main(String[] args)
    {
        Pair<Integer, String> p = getTwo();
        System.out.println(p.getKey() + " " + p.getValue());
    }
}

Si hay más de dos valores devueltos,
podemos encapsular todos los tipos devueltos en una clase y luego devolver un objeto de esa clase.

Echemos un vistazo al siguiente código.

// A Java program to demonstrate that we can return
// multiple values of different types by making a class
// and returning an object of class.
  
// A class that is used to store and return
// three members of different types
class MultiDivAdd {
    int mul; // To store multiplication
    double div; // To store division
    int add; // To store addition
    MultiDivAdd(int m, double d, int a)
    {
        mul = m;
        div = d;
        add = a;
    }
}
  
class Test {
    static MultiDivAdd getMultDivAdd(int a, int b)
    {
        // Returning multiple values of different
        // types by returning an object
        return new MultiDivAdd(a * b, (double)a / b, (a + b));
    }
  
    // Driver code
    public static void main(String[] args)
    {
        MultiDivAdd ans = getMultDivAdd(10, 20);
        System.out.println("Multiplication = " + ans.mul);
        System.out.println("Division = " + ans.div);
        System.out.println("Addition = " + ans.add);
    }
}
Producción:

Multiplication = 200
Division = 0.5
Addition = 30

Lista de devolución de clase de objeto

// Java program to demonstrate return of
// multiple values from a function using
// list Object class.
import java.util.*;
  
class GfG {
    public static List<Object> getDetails()
    {
        String name = "Geek";
        int age = 35;
        char gender = 'M';
  
        return Arrays.asList(name, age, gender);
    }
  
    // Driver code
    public static void main(String[] args)
    {
        List<Object> person = getDetails();
        System.out.println(person);
    }
}
Producción:

[Geek, 35, M]

Este artículo es una contribución de Twinkle Tyagi . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo y enviarlo por correo electrónico a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *