Autor Tema: Lambada foreach  (Leído 60 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Toxico

  • L2j Developer
  • *
  • Topic Author
  • Mensajes: 819
  • ar
  • Agradecimientos: 159
  • Toxico
  • Cronica: : Interlude
  • Revision: 376
  • S.O: Windows 10
  • Serverpack : L2J aCis
Lambada foreach
« en: Diciembre 02, 2018, 02:55:00 pm »
gracias
Este post tiene 0 agradecimientos
  • Añade a tus favoritos
    Hola amigos, bueno viendo que simplifica mucho el código usar la lambada forEach (Java 8 ) para recorrer un map decidí utilizarla. Para recorrer un map simple Map<String,Integer> funciona perfecto pero si tengo un Map<String,Map<String,Integer>> (nunca supe como denominan a este tipo de maps con tres valores) se puede recorrer obtenido los valores por separado o me conviene usar un Entry

    Conectado Kimeraweb

    • AdminSite
    • *
    • Mensajes: 2181
    • de
    • Agradecimientos: 758
    • Kimeraweb
      • http://l2devsadmins.net
    • Cronica: : Alfa
    • Revision: Alfa
    • S.O: Windows 10
    • Serverpack : Desarrollo interno
    A Toxico le gusta este post.

    Re:Lambada foreach
    « Respuesta #1 en: Diciembre 02, 2018, 05:21:18 pm »
    gracias
    Este post tiene 1 agradecimientos
  • Añade a tus favoritos
    Una clave asociada a un array. Y quieres recorrer también el array obtenida de la clave.

    Te dejo en manos profesionales, porque no te puedo aconsejar en Java 8. Usaría técnicas de Java 6.

    https://stackoverflow.com/questions/25864559/iterate-though-a-map-of-maps-with-lambda-in-java-8

    "Sólo existen dos días al año en los que no se puede hacer nada: ayer y mañana" (Dalai Lama)

    Conectado Fissban

    • AdminSite
    • *
    • Mensajes: 5512
    • ar
    • Agradecimientos: 1609
      • Mis Proyectos
    • Cronica: : Scions of Destiny
    • Revision: Last
    • S.O: Windows 10
    • Serverpack : L2jAdmins
    A Toxico le gusta este post.

    Re:Lambada foreach
    « Respuesta #2 en: Diciembre 03, 2018, 08:34:49 pm »
    gracias
    Este post tiene 1 agradecimientos
  • Añade a tus favoritos
    primero vamos a los conceptos.
    Citar
    Map<String,Map<String,Integer>>
    Esto no es un mapa de 3 objetos.

    Un mapa es una colleccion que tiene "key" y "value" dobnde el key suele ser un objeto sencillo (Integer,String,Float...) y el el "value" ya puede ser lo que gustes.

    En este caso que mencionas es lo que se llama un mapa anidado que no son muy comunes porque no son sencillos en su compresion pero son totalmente validos.

    Ahora como recorremos un mapa? es tan sencillo como...vamos con algunos ejemplos.

    Citar
          Map<String,Map<Integer,String>> foro = new HashMap<>();
          
          foro.forEach((K,V)->
          {
             
          });

    de esta manera indicamos que vamos a recorrer el mapa "foro" obteniendo "K" y "V" que son key y value...en el caso del "key" estamos obteniendo acceso al 2do mapa

    Ahora vamos a seguir el anidado....digamos que foro contiene como "key" todos los "subforos" y cada subforo contiene todos los post...donde el key en este segundo mapa sera el id del post y el value sera el texto en el....mira esto


    Código: [Seleccionar]
    		foro.forEach((K,V)->
    {
    // subforo
    String key = K;
    // mapa con los post (key=id del post, value= texto del post)
    Map<Integer,String> value = V;

    // digamos que bsucamos determiando subforo.

    if (key.equals("Dudas java"))
    {
    // encontramos un determinado subforo y ahora se recorre el segundo mapa

    value.forEach((ID,POST)->
    {
    System.out.println("ID:" + ID + "POST:" + POST);
    });
    }
    });

    claro, esto ahora con los lambdas podes escribir esto de varias formas pero esta es una sencilla q encontre y que te puede ser familiar.

    Desconectado Toxico

    • L2j Developer
    • *
    • Topic Author
    • Mensajes: 819
    • ar
    • Agradecimientos: 159
    • Toxico
    • Cronica: : Interlude
    • Revision: 376
    • S.O: Windows 10
    • Serverpack : L2J aCis
    Re:Lambada foreach
    « Respuesta #3 en: Diciembre 03, 2018, 09:23:55 pm »
    gracias
    Este post tiene 0 agradecimientos
  • Añade a tus favoritos
    Gracias kime por tu respuesta pero la de fiss es la que me faltaba aprender esta muy bien explicado. Ahora voy a ver que tal  me va