Java: devolver varios valores en función

En este post de programación en Java y trabajo con funciones o métodos te mostraré cómo regresar 2 valores en una función.

Además de enseñarte un ejemplo para regresar dos valores te enseñaré cómo devolver varios valores, es decir, 3, 4, 5, etcétera.

Vamos a ver varios enfoques y ejemplos. Por cierto, ya te mostré cómo hacerlo en C# y PHP.

Método simple: con arreglos

Comencemos viendo cómo regresar varios datos en Java usando arreglos. Un arreglo puede ser de cualquier longitud fija, por lo tanto podemos definir un método así:

En este caso estoy devolviendo dos cadenas, pero puede ser cualquier tipo de dato del arreglo. Y de este modo estaríamos devolviendo dos valores, aunque pueden ser más.

Para usarlo hacemos lo siguiente:

Si bien esta práctica no es recomendada porque tenemos que ir a ver el código de la función para saber los índices de los datos, es la más simple.

Devolver dos valores usando SimpleEntry

Existe una clase llamada SimpleEntry que guarda una clave y un valor genéricos. Así que ambos pueden ser de cualquier tipo. Aquí un ejemplo que devuelve una cadena y un entero:

Fíjate en que estoy indicando el tipo de dato de la clave y valor al definir el método. Y ahora para llamarlo debo definir una instancia de esta clase indicando los mismos tipos de datos en ese orden:

La ventaja de este método es que podemos revisar los tipos de datos en tiempo de compilación, previniendo varios errores.

Devolver múltiples valores con clase

Ahora veamos el método recomendado para devolver varios valores en una función de Java. Lo mejor es crear una clase auxiliar que represente lo que vamos a representar.

No importa lo tedioso que parezca, al final es mejor. Por ejemplo, tenemos un método que devuelve el nombre y edad. Podemos crear una clase llamada NombreConEdad:

Y luego indicar que vamos a devolver una instancia de esa clase en nuestro método:

Ahora podemos usar los getters y setters; pero lo más importante es que sabemos lo que la función nos devuelve. Ya no nos devuelve algo genérico, sabemos lo que regresa: un nombre con edad.

De este modo sabemos (como humanos) lo que la función regresa.

Devolver múltiples datos – Ejemplo final

Para terminar el post te mostraré cómo devolver 3 o infinitos valores en una función de Java. Lo haremos de nuevo con clases, mejorando el método anterior.

Arriba te mostré que puedes usar una clase, pero recuerda que debes encontrar el parecido a una cosa real de la vida real. Por lo tanto si quisiéramos devolver 3 valores: el nombre, apellido y edad probablemente sería mejor crear la clase Persona en lugar de la clase NombreConApellidoYEdad.

Lo que quiero darte a entender aquí es que debes buscar la clase significativa que represente lo que vas a devolver, abstrayendo con cosas de la vida real. De este modo vas a tener un código más limpio y entendible.

Finalmente te dejo el código completo de los ejemplos mostrados aquí:

Puedes ejecutarlo en línea. También te dejo con un enlace para aprender más sobre Java en mi blog.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario