Mastodon

Midiendo el rendimiento de rutinas



Estos días me ha tocado revisar código hecho por otros, y encontré un par de rutinas que me parecieron interesantes para revisar. Estas las publiqué en la cuenta de twitter:


He recibido respuestas interesantes.

Lo que publicaré en este post y en un vídeo es ver cuál es la rutina más rápida, en base a sus respuestas.

Validando que una lista no esté vacía

He creado una clase Utils con tres métodos que validará que una lista no esté vacía. La primera es la manera como encontré en el código, la segunda y la tercera es usando sus respuestas.

    public static boolean isValidListIf(List<?> list) {
        if (list != null) {
            if (list.size() > 0) {
                return true;
            } else {
                return false;
            }
        } else {
            return false;
        }
    }

    public static boolean isValidListInline(List<?> list) {
        return list != null && !list.isEmpty();
    }

    public static boolean isValidListOptional(List<?> list) {
        return Optional.ofNullable(list).map((l) -> !l.isEmpty()).orElse(Boolean.FALSE);
    }

¿Cuál cree que es más rápido?

Validando que una cadena no esté vacía

Esta también es similar, solo que se asegura que no tenga espacios en blanco. Igual, tendremos tres métodos:
    public static boolean isValidStringIf(String str) {
        if (str != null) {
            if (str.trim().length() > 0) {
                return true;
            } else {
                return false;
            }
        } else {
            return false;
        }
    }

    public static boolean isValidStringInLine(String str) {
        return str != null && !str.trim().isEmpty();
    }

    public static boolean isValidStringOption(String str) {
        return Optional.ofNullable(str).map(s -> !s.trim().isEmpty()).orElse(Boolean.FALSE);
    }

Vídeo

Aquí veremos el código en ejecución y veremos el resultado, además daremos un veredicto ¿cuál crees que es el resultado?


Código fuente

Aquí publico el código fuente para que también lo intentes y pruebas en tu máquina:
Artículo Anterior Artículo Siguiente