Recorriendo Enums – Parte II

¿Qué vamos a ver?

Bueno, después de la clase de introducción a los enums, vamos a empezar a explicar cómo mostrar sus valores, tanto solamente único valor, como también múltiples valores. Y también repasaremos como recorrerlos los enums mediante a bucles de diferentes maneras.

Partimos del siguiente código para trabajar. Una clase Estaciones y un método Main desde el que sacaremos los resultados:

Mostrando un valor en específico de un enum

Para mostrar un único valor, tenemos varias opciones. En la clase anterior ya vimos la siguiente:

Otra manera de mostrar los valores sería mediante a value, en este caso, aparte de mostrar un valor, mostramos el nombre de la clase, la longitud, value nos devuelve el array que contiene los elementos. Eso sí, un array sin parsear y por último el valor que deseamos pasándole la posición del array.

ValueOf

ValueOf, nos permite buscar dentro de un enum un elemento. Vamos a ver un ejemplo.

Pese a ello, si ejecutamos lo siguiente, en vez de encontrarnos con el resultado esperado, nos encontramos con un error.

Este error, se produce debido a que Java es key sensitive (distingue mayúsculas y minúsculas) y por tanto, no será lo mismo INVIERNO que invierno.

Para evitar que se produzca un error si el elemento buscado no existe podemos englobar el código dentro de un try catch. Además lo ideal, sería que guardáramos el nombre del elemento a buscar en una variable y utilizáramos el método toUpperCase para pasar el texto a mayúsculas. De esta manera, nos curarnos en salud evitando casos como el que se ha producido anteriormente, donde un elemento existe pero está en mayúsculas.

Name y Ordinal

Name, nos devuelve el nombre del valor en formato String.
Ordinal, nos devuelve la posición que ocupa el elemento dentro de la clase Enum. El primer valor siempre será el 0. El segundo el 1 y así con todos.
Una fórmula para calcularlo es: n-1 en la la posición del elemento en la clase Enum.

CompareTo

Mediante a compareTo podemos comparar dos enums, eso sí, debemos guardar uno de ellos en una variable como en el siguiente ejemplo:

Mostrando múltiples valores de un enum

Realmente, System.out.println(Estaciones.values()); lo que nos intenta mostrar es el contenido del enum, pero no lo vemos bien debido a que nos está mostrando es un Array que tiene algo similar a una codificación y que debemos pasar a string mediante un parseo (en este caso significa pasar el contenido del Array a un formato String para poderlo imprimir).

For manera 1 (tradicional)

Vamos a ver cómo realizar un bucle con un for tradicional:

For manera 2 (for each)

Si escribimos foreach en el main y pulsamos control + espacio, se nos mostrará lo siguiente si seleccionamos el foreach, directamente, se nos creará una estructura similar a la del ejemplo. Y solamente deberemos cambiarle los nombres de las variables para recorrer todos los elementos del bucle.

El resultado de ambos será el mismo:

Bueno justamente aquí, este artículo llega a su fin. En la próxima clase, acabaremos cerramos la explicación de las clases enums viendo la potencia que pueden llegar a tener si los combinamos con Getters&Setters.

21 comentarios

  1. Hi, just wanted to tell you, I liked this post.
    It was practical. Keep on posting!

  2. I loved as much as you’ll receive carried out right here.

    The sketch is attractive, your authored subject matter
    stylish. nonetheless, you command get got an nervousness over that
    you wish be delivering the following. unwell unquestionably come further formerly
    again since exactly the same nearly very often inside case you shield this
    increase.

  3. Hi there, You’ve done an excellent job. I’ll definitely digg it and personally recommend to my friends.
    I am confident they’ll be benefited from this web site.

  4. Yes! Finally something about website.

  5. Terrific paintings! That is the type of information that are
    supposed to be shared around the web. Disgrace on the search engines for not positioning this submit upper!
    Come on over and visit my web site . Thanks =)

    my web site – TetraMale

  6. It’s a shame you dօn’t have a donate button! I’d most
    certainly donate to tһis suрerb blog! I suppose for now i’ll settle
    for bookmarking ɑnd adding your RSS feeԁ tto my Golgle account.
    I loik forwardd to brand new updates and will share
    this website with my Faϲebook group. Taⅼk soon!

    My blog; berita gadget

  7. I’ll right away clutch your rss feed as I can not find
    your email subscription link or newsletter service. Do you’ve any?
    Kindly let me know so that I may subscribe. Thanks.

  8. Regards for helping out, superb info.

    Take a look at my site Luiresse Skin [http://www.comptine.biz]

  9. Very nice article, exactly what I needed.

    Here is my site kanmoulue.com

  10. What a material of un-ambiguity and preserveness
    of precious know-how on the topic of unexpected feelings.

    Also visit my webpage; shihan.com.ru

  11. I am genuinely glad to glance at this webpage posts which includes tons of helpful data,
    thanks for providing such information.

    Here is my site … Moscatcher Mosquito Zapper

  12. What’s up to every body, it’s my first pay a visit of this webpage;
    this web site contains remarkable and truly fine material in favor of readers.

    Feel free to surf to my site: Libido Boost Male Enhancement

  13. Wow, this post is good, my younger sister is analyzing such things, therefore I am going to inform her.

  14. What i do not realize is actually how you’re now not really
    a lot more well-preferred than you might be right now.

    You are very intelligent. You already know therefore considerably with regards to this matter, produced me
    for my part consider it from so many various angles. Its like women and men don’t seem to be interested until it’s something
    to accomplish with Woman gaga! Your own stuffs great. Always handle it up!

    Check out my homepage Green CBD Gummies Reviews (Amie)

  15. I visited a lot of website but I believe this one has got something special in it.

    My homepage … Moscatcher Zapper

  16. Awesome! Its genuinely awesome paragraph, I have got much clear idea concerning from this post.

  17. Quality content is the secret to attract the visitors to
    pay a quick visit the website, that’s what this
    site is providing.

    Also visit my web page – Dustin

  18. This is my first time visit at here and i am genuinely impressed to read all at alone place.

  19. Hi there! I could have sworn I’ve been to your blog before but after browsing
    through many of the articles I realized it’s new to me.
    Anyways, I’m certainly delighted I came across it
    and I’ll be bookmarking it and checking back often!

  20. I read this article completely concerning the comparison of most up-to-date and preceding technologies, it’s
    amazing article. asmr https://app.gumroad.com/asmr2021/p/best-asmr-online asmr

  21. whoah this blog is wonderful i love studying your articles.

    Keep up the good work! You recognize, a lot of persons are
    looking around for this information, you could aid
    them greatly. quest bars https://www.iherb.com/search?kw=quest%20bars quest bars

Deja una respuesta

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

La Ley 34/2002 nos obliga a avisarte de que usamos cookies propias y de terceros con objetivos estadísticos y de sesión y para mostrarte la 'publi' que nos da de comer. Tranquilo, este mensaje solo sale una vez. Más información

Java desde 0 comunica a los usuarios, a través de este aviso, que puede utilizar cookies cuando el usuario navega por las diferentes pantallas y páginas del sitio. Durante el uso de nuestra página Web usted acepta y autoriza expresamente el uso de cookies, de acuerdo con nuestra Política de Privacidad. Este sitio web utiliza las siguientes cookies propias: - Cookies de sesión, para garantizar que los usuarios que escriban comentarios en el blog sean humanos y no aplicaciones automatizadas. De esta forma se combate el spam. Este sitio web utiliza las siguientes cookies de terceros: - Google AdManager y AdSense: Utiliza cookies para mejorar la publicidad. Entre otros fines, suelen utilizarse para segmentarla según el contenido que sea relevante para los usuarios o su ubicación, mejorar los informes de rendimiento de las campañas y evitar mostrar anuncios que los usuarios ya hayan visto. Las cookies no contienen información personal identificable. Consulta cómo utiliza Google la información de sitios web o aplicaciones. y cómo bloquear determinados anuncios. - Google Analytics: Almacena cookies para poder elaborar estadísticas sobre el tráfico y volumen de visitas de esta web. Al utilizar este sitio web está consintiendo el tratamiento de información acerca de usted por Google. Por tanto, el ejercicio de cualquier derecho en este sentido deberá hacerlo comunicando directamente con Google. - Redes sociales: Cada red social utiliza sus propias cookies para que usted pueda pinchar en botones del tipo Me gusta o Compartir.

Cerrar