Skip to main content
Únase a nosotros en TDX, en San Francisco, o en Salesforce+ los días 5 y 6 de marzo en la conferencia para desarrolladores sobre la era de agentes de IA. Registrarse ahora.

Definir conjuntos y mapas

Objetivos de aprendizaje

Después de completar esta unidad, podrá:

  • Crear conjuntos y mapas.
  • Describir cómo difieren las listas, los conjuntos y los mapas.
  • Decidir cuándo usar un conjunto en lugar de una lista.

Siga el proceso con Trail Together

¿Desea seguir el proceso con un experto a medida que realiza este paso? Eche un vistazo a este vídeo, parte de la serie Trail Together en Trailhead Live. 

(Este clip comienza en la marca del minuto 49:06, en caso de que desee retroceder y volver a ver el principio del paso).

Introducción

Como ya ha aprendido, una lista es una colección ordenada de elementos con los mismos tipos de datos. Cada elemento tiene una posición llamada índice. Esto facilita la recuperación de elementos en la lista mediante el índice numerado. Pero las colecciones de Apex son más que solo listas. Los otros dos tipos de colecciones son los conjuntos y los mapas.

Conjuntos

Hasta ahora, ha creado un tipo de colección, una lista. Un conjunto es un set no ordenado de elementos únicos del mismo tipo. Como una lista, un conjunto es un grupo de elementos, y todos ellos tienen los mismos tipos de datos, como cadena, entero o incluso Account. A diferencia de una lista, un conjunto no mantiene un orden concreto para sus elementos. Debido a que los elementos no están ordenados, un conjunto no puede tener duplicados. Si intenta añadir un elemento que ya está en el conjunto, no recibirá un error, pero el nuevo valor no se añadirá al conjunto. Recuerde que, cuando recorre una lista, siempre accede a sus elementos en el orden en que se añadieron. Cuando recorre un conjunto, debido a que los elementos no están ordenados, puede acceder a ellos en un orden aleatorio.

Declarar un conjunto es similar a declarar una lista, pero se sustituye la palabra clave Set (Conjunto) por List (Lista). Creemos un conjunto de cadenas.

Crear un conjunto

  1. En Developer Console, haga clic en File | New | Apex Class (Archivo | Nuevo | Clase de Apex).
  2. Introduzca Té como el nombre de la clase.
  3. Haga clic en OK (Aceptar).
  4. Reemplace el código en la clase Té con este código:
    public class Tea{
        public static void orderTea(){
            Set<String> teaTypes = new Set <String>();
            teaTypes.add('Black');
            teaTypes.add('White');
            teaTypes.add('Herbal');
            system.debug(teaTypes);
        }
    }
  5. Haga clic en File | Save (Archivo | Guardar).

Ejecutar el código

  1. Haga clic en Debug | Open Execute Anonymous Window (Depurar | Abrir ventana de ejecución anónima).
  2. En la ventana Enter Apex Code (Introducir código Apex), pegue este código:
              Tea.orderTea();
  3. Seleccione Open log (Abrir registro) y luego haga clic en Execute (Ejecutar). Se abre el registro de ejecución, que muestra los resultados de la ejecución de su código.
  4. Seleccione Debug Only (Solo depurar) en la parte inferior de la ventana.

El registro de depuración muestra los tres tipos de té: Negro, Blanco y De hierbas.

Métodos de conjunto

Cada tipo de colección tiene sus propios métodos. Ha añadido Negro, Blanco y De hierbas a una lista de tipos de té con el método comúnmente utilizado add (agregar). Para conocer más detalles sobre los métodos de conjunto, consulte los recursos al final de esta unidad.

Añadir un valor duplicado a un conjunto

  1. En la clase Té, reemplace el método orderTea (líneas 2-8) con este código:
    public static void orderTea(){
        Set<String> teaTypes = new Set <String>{'Black', 'White', 'Herbal'};
        system.debug(teaTypes);
        teaTypes.add('Green');
        teaTypes.add('Black');
        system.debug(teaTypes);
    }
  2. Haga clic en File | Save (Archivo | Guardar).

Ejecutar el código

  1. Ejecute este código: Tea.orderTea();
    Consejo: Haga clic en Debug | Execute Last (Depurar | Ejecutar último) para volver a ejecutar el código previo utilizando Execute Anonymous (Ejecución anónima). Esta opción es práctica cuando realiza cambios en un método y lo vuelve a ejecutar de la misma manera.
  2. Revise el registro de depuración.

La línea 4 muestra teaTypes en el registro para que pueda verificar el contenido del conjunto. Las líneas 6 y 7 añaden Verde y Negro al conjunto. La línea 9 muestra teaTypes en el registro para que pueda volver a verificar el contenido del conjunto. ¿Por qué no se ha añadido Negro al conjunto? 

Recuerde que los conjuntos no permiten valores repetidos. Además, tenga en cuenta que no puede acceder a un conjunto como lo haría con una lista. Los conjuntos se utilizan típicamente para verificar si un cierto valor está incluido.

Elegir una lista o un conjunto

Puede que esté pensando: "Ya sé cómo usar tanto listas como conjuntos. ¿Cómo decido cuál usar?". Piense en la colección que desea crear y hágase estas dos preguntas.

  1. ¿Quiero permitir duplicados?
  2. ¿Es importante el orden de los elementos?

Si responde sí a alguna de estas preguntas, use una lista. Si responde no a ambas preguntas, use un conjunto. 

Ha aprendido sobre listas y conjuntos, pero hay otro tipo más de colección. Ahora hablemos sobre los mapas.

Mapas

Un mapa es una colección más compleja que una lista o un conjunto. Cada elemento en un mapa tiene dos partes: una clave y un valor, conocidos como un par clave-valor. Las claves y los valores pueden ser de cualquier tipo de dato. Aunque cada clave es única, los valores pueden repetirse dentro de un mapa. Imagine un mapa de códigos de país telefónicos. El código de país es la clave y el nombre del país es el valor. Cada código de país es único, pero los países pueden duplicarse (ya que un país puede tener más de un código de país). 

El método put

Para añadir pares clave-valor a un mapa, utilice el método put (poner), de la siguiente manera:

mapName.put (clave, valor);

El método put (poner) requiere dos parámetros: clave y valor. Vamos a crear un mapa de tipos de té (claves) y sus perfiles de sabor (valores). 

Tipos de té y perfiles de sabor

Tipos de té (clave)
Perfiles de sabor (valor)
Negro
Terroso
De hierbas
Dulce
Blanco
Dulce

Crear un mapa

  1. En la clase Té, reemplace el código existente con este código:
    public class Tea{
        public static void orderTea(){
            Map <String, String> teaTypes = new Map <String, String>();
            teaTypes.put('Black', 'Earthy');
            teaTypes.put('White', 'Sweet');
            teaTypes.put('Herbal', 'Sweet');
            system.debug(teaTypes);
        }
    }
  2. Haga clic en File | Save (Archivo | Guardar).

Ejecutar el código

  1. Ejecute este código: Tea.orderTea();
  2. Revise el registro de depuración.

El registro de depuración muestra que el mapa tiene tres pares clave-valor:

Black=Earthy (Negro=Terroso), Herbal=Sweet (Herbario=Dulce), White=Sweet (Blanco=Dulce)

Los valores Earthy (terroso) y Sweet (dulce) son los perfiles de sabor. Sweet es el perfil de sabor para dos tipos de té porque los valores duplicados se permiten en un mapa.

El método get

Para acceder a los valores en un mapa, utilice el método get (obtener), de la siguiente manera: 

mapName.get (clave);

Cuando se le proporciona una clave existente, el método get (obtener) devuelve el valor asociado a esa clave. Si la clave proporcionada no está asociada a un valor, el método get (obtener) devuelve null. Recuerde que la declaración del mapa especifica el tipo de dato que espera como valor de retorno. La variable que devuelve un valor debe ser del mismo tipo de dato que especifica la declaración del mapa.

Obtener valores de un mapa

  1. En la clase Té, reemplace el método orderTea (líneas 2-8) con este código:
    public static String orderTea(){
        Map <String, String> teaTypes = new Map <String, String>();
        teaTypes.put('Black', 'Earthy');
        teaTypes.put('White', 'Sweet');
        teaTypes.put('Herbal', 'Sweet');
        String flavorProfile = teaTypes.get('Herbal');
        System.debug('The flavorProfile of Herbal is: ' + flavorProfile);
        return flavorProfile;
    }
  2. Haga clic en File | Save (Archivo | Guardar).

Ejecutar el código

  1. Ejecute este código:Tea.orderTea();
  2. Revise el registro de depuración.

Debido a que el mapa teaTypes está declarado con valores de tipo cadena, el tipo de retorno también debe ser una cadena (flavorProfile).

Ahora ya conoce los tres tipos de colecciones de Apex. 

Tipo de colección
Descripción
Lista
Un grupo ordenado de elementos del mismo tipo. Cada elemento tiene un número de índice que representa su posición en la lista.
Conjunto
Un grupo no ordenado de elementos únicos del mismo tipo.
Mapa
Una colección de pares clave-valor. Cada clave única se asigna a un solo valor.

En módulos más avanzados, comienza a consultar datos dentro de su organización. Una vez que recibe los datos, necesita lugares para almacenar la información; las colecciones son útiles para proporcionar almacenamiento temporal. Si desea aprender más sobre colecciones, consulte los enlaces de la Guía del desarrollador de Apex en la sección de Recursos. 

Recursos

Comparta sus comentarios sobre Trailhead en la Ayuda de Salesforce.

Nos encantaría conocer su experiencia con Trailhead. Ahora puede acceder al nuevo formulario de comentarios cuando quiera desde el sitio de la Ayuda de Salesforce.

Más información Continuar para compartir comentarios