Java Lambdas: Función UnaryOperator

Breve explicación

La función UnaryOperator<T> es una interfaz funcional en Java que acepta un solo argumento de tipo T y devuelve un resultado del mismo tipo T. Es una especialización de Function<T, T>. El método funcional de UnaryOperator es apply(T t).

Ejemplo 1: Versión completa del cuerpo de la función Lambda
Java
package org.example.tinajero;

import java.util.function.UnaryOperator;

public class LambdaUnaryOperatorExample {

    public static void main(String[] args) {
    	
        /*
         * 🛠️ UnaryOperator
         * 💡 Recibe un valor de tipo T y retorna un valor del mismo tipo.
         */

        // Creamos un UnaryOperator que multiplica un número entero por 2
        UnaryOperator<Integer> multiplyByTwo = (Integer n) -> {
            // Cuerpo completo: retorna el valor multiplicado por 2
            return n * 2;
        };

        // Usamos el UnaryOperator para multiplicar 5 por 2
        System.out.println("5 multiplicado por 2: " + multiplyByTwo.apply(5));

        // Creamos otro UnaryOperator que convierte una cadena a mayúsculas
        UnaryOperator<String> toUpperCase = (String s) -> {
            // Retorna la cadena en mayúsculas
            return s.toUpperCase();
        };

        // Aplicamos el UnaryOperator para convertir "java" a mayúsculas
        System.out.println("'java' en mayúsculas: " + toUpperCase.apply("java"));
    }
    
}

Ejemplo 2: Reducción de la expresión Lambda
Java
package org.example.tinajero;

import java.util.function.UnaryOperator;

public class LambdaUnaryOperatorExampleSimplified {

    public static void main(String[] args) {
    	
        /*
         * 🛠️ UnaryOperator
         * 💡 Recibe un valor de tipo T y retorna un valor del mismo tipo.
         */

        // Versión simplificada del UnaryOperator que multiplica un número por 2
        UnaryOperator<Integer> multiplyByTwo = n -> n * 2;

        // Ejecutamos el UnaryOperator para multiplicar 10 por 2
        System.out.println("10 multiplicado por 2: " + multiplyByTwo.apply(10));

        // Versión simplificada del UnaryOperator que convierte una cadena a mayúsculas
        UnaryOperator<String> toUpperCase = s -> s.toUpperCase();

        // Usamos el UnaryOperator para convertir "lambda" a mayúsculas
        System.out.println("'lambda' en mayúsculas: " + toUpperCase.apply("lambda"));
    }
    
}