Skip to main content

Utilizar recopilaciones

Objetivos de aprendizaje

Después de completar esta unidad, podrá:

  • Declarar e inicializar una lista.
  • Explicar dos maneras de agregar elementos a una lista.
¿Sabía que puede aprender de un experto? Vea este video para conocer más sobre los temas de este módulo:

Recopilaciones

Una recopilación es un tipo de variable que puede almacenar elementos múltiples. En nuestro ejemplo del té, tenemos un azucarero con varios terrones dentro. El azucarero se considera una recopilación y los terrones son los elementos que están almacenados en esa recopilación.

Una recopilación etiquetada como azucarero. Los terrones del azucarero son los elementos etiquetados en la recopilación.

Aunque hay tres tipos de recopilaciones de Apex (listas, conjuntos y mapas), en este módulo nos centramos en las listas.  

Listas

Una lista de Apex es un grupo ordenado de elementos del mismo tipo, como una lista de la compra. 

  1. Azúcar
  2. Miel
  3. Leche

Cada elemento de la lista de la compra es una cadena, y cada elemento tiene una posición dentro de la lista. Para declarar una lista necesita algunas cosas. Utilizará la palabra reservada list, el tipo de datos (todos los elementos deben ser del mismo tipo de datos) dentro de los caracteres <>, y la palabra reservada new. Al final de esta instrucción están los paréntesis obligatorios. 

List <String> verduras = new List <String>();

Nota

Nota

Las palabras reservadas son palabras de programación que tienen un significado especial y no pueden utilizarse como nombres de variables. Las palabras como new, string, false, null y muchas más le darán un error de sintaxis si da a una variable el mismo nombre.

Declarar una lista vacía

  1. En Developer Console, haga clic en Debug (Depuración) | Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
  2. Copie el siguiente código y péguelo en la ventana Enter Apex Code (Ingresar código Apex).
    //Declare the groceries list
    List<String> groceries = new List<String>();
      
    //The output for this statement is an empty list, ().
    System.debug('Groceries Value: ' + groceries);
  3. Seleccione la casilla de verificación Open Log (Abrir registro) y haga clic en Execute (Ejecutar). Se abre Execution Log (Registro de ejecución), mostrando el resultado de la ejecución de su código.
  4. Seleccione la casilla de verificación Debug Only (Solo depurar) en la parte inferior de la pantalla.

Cuando ejecutó el código, probablemente observó que el resultado fue (). Debido a que no agregó nada a la lista, está vacía. Cuando declaró la lista verduras, creó un único espacio vacío, listo para agregar elementos. 

Un gran espacio vacío denominado verduras.

Declarar una lista con un tamaño establecido

Si sabemos exactamente la longitud que tiene que tener nuestra lista, podemos establecer el tamaño cuando declaramos la lista. Hacemos esto incluyendo el tamaño entre corchetes [ ] después del tipo de datos de esta manera: 

String[] verduras = new String[4];

Nota

Nota

Hay distintas formas de declarar listas en Apex. Este ejemplo utiliza anotaciones de matrices para establecer el tamaño de la lista.

Este código declara una lista de cadenas llamada verduras y establece su tamaño en 4 cadenas. La lista de verduras vacías tiene este aspecto:

Un espacio denominado verduras dividido en cuatro huecos.

La posición secuencial de un elemento es un número llamado su índice. El índice es el modo con el que hacemos referencia a elementos. Probablemente aprendió a contar empezando por el número uno. No obstante, en muchos lenguajes de programación se empieza a contar desde el número cero. De este modo, nuestra lista tendrá este aspecto cuando redactamos nuestro código de Apex. 

  1. Azúcar
  2. Miel
  3. Leche

El índice que utilizar para apuntar a un elemento específico de la lista será el índice 0 para Té, el índice 1 para Azúcar, el índice 2 para Miel y así sucesivamente. 

Se hace referencia a un elemento específico en la lista por su índice (su posición dentro de la lista) de este modo:

verduras[0];

  1. En Developer Console, haga clic en Debug (Depuración) | Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
  2. Copie el siguiente código y péguelo en la ventana Enter Apex Code (Ingresar código Apex).
    String[] groceries = new String[4];
    System.debug('Initialized groceries: ' + groceries);
      
    System.debug('Item 0: ' + groceries[0]);
  3. Seleccione la casilla de verificación Open Log (Abrir registro) y haga clic en Execute (Ejecutar). Se abre Execution Log (Registro de ejecución), mostrando el resultado de la ejecución de su código.
  4. Seleccione la casilla de verificación Debug Only (Solo depurar) en la parte inferior de la pantalla.

El valor del primer elemento de la lista es nulo. Agreguemos algunos elementos a la lista.

Inicializar una lista

Inicializar una lista es asignar valores iniciales a una lista. Existen dos formas de agregar elementos a una lista:

  1. Declarar e inicializar una lista.
    //Sets the first item in the list to 'Tea'
    List<String> groceries = new List<String>{'Tea'}; 
  2. Declarar una lista vacía y agregar valores más tarde.
    List<String> groceries = new List<String>();
    groceries.add('Tea');

Declarar e inicializar una lista

La sintaxis para inicializar una lista con valores es parecido a declarar una lista vacía. La diferencia es que, en vez de utilizar paréntesis (( )), se utilizan llaves ({ }) para agregar valores. 

  1. En Developer Console, haga clic en Debug (Depuración) | Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
  2. Copie el siguiente código y péguelo en la ventana Enter Apex Code (Ingresar código Apex).
    //Declare the groceries list
    List<String> groceries = new List<String>{'Tea','Sugar','Honey','Milk'};
      
    //The output for this statement is Tea, Sugar, Honey, Milk
    System.debug('Groceries: ' + groceries);
  3. Seleccione la casilla de verificación Open Log (Abrir registro) y haga clic en Execute (Ejecutar). Se abre Execution Log (Registro de ejecución), mostrando el resultado de la ejecución de su código.
  4. Seleccione la casilla de verificación Debug Only (Solo depurar) en la parte inferior de la pantalla.

Declarar una lista vacía y agregar valores más tarde

¿Qué pasa si desea agregar elementos más tarde? Apex proporciona métodos que le permiten trabajar con listas. Utilicemos el método add para incorporar elementos a la lista de verduras.

  1. En Developer Console, haga clic en Debug (Depuración) | Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
  2. Copie el siguiente código y péguelo en la ventana Enter Apex Code (Ingresar código Apex).
    //Create the groceries list
    List<String> groceries = new List<String>();
      
    //The output for this statement is null
    System.debug('Groceries: ' + groceries);
      
    //Use the add method to add an element to the list
    groceries.add('Tea');
    groceries.add('Sugar');
    groceries.add('Honey');
    groceries.add(2, 'Milk');
      
    //The output for this statement is Tea, Sugar, Milk, Honey
    System.debug('Groceries: ' + groceries);
  3. Seleccione la casilla de verificación Open Log (Abrir registro) y haga clic en Execute (Ejecutar). Se abre Execution Log (Registro de ejecución), mostrando el resultado de la ejecución de su código.
  4. Seleccione la casilla de verificación Debug Only (Solo depurar) en la parte inferior de la pantalla.

Un espacio denominado verduras subdividido en cuatro huecos con un ingrediente en cada hueco. Té, Azúcar, Leche y Miel.

¿Se dio cuenta del punto (“.”) entre verduras y add? Apex utiliza la notación de puntos. La notación de puntos tiene varios usos. En la línea 8 conectamos el método add (que proporciona Apex) a la lista verduras con un punto para agregar un elemento (Té) a la lista.

La línea 11 demuestra otra manera de agregar un elemento a una lista, mediante la inserción de un elemento en un índice (posición) específico: 

verduras.add(2, ‘Leche’);

A medida que vaya trabajando con código de Apex, aprenderá cómo determinar qué método utilizar. Pero los fundamentos que aprenda en esta unidad pueden ayudarle a empezar. 

Desmitificación de las listas

Las diversas formas de agregar elementos a una lista generan resultados ligeramente diferentes, a veces inesperados. Pruebe este ejercicio.

  1. En Developer Console, haga clic en Debug (Depuración) | Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
  2. Copie el siguiente código y péguelo en la ventana Enter Apex Code (Ingresar código Apex).
    String[] groceries = new String[4];
    System.debug('Groceries: ' + groceries);
      
    groceries.add('Tea');
    groceries.add('Sugar');
    System.debug('Added 2 items: ' + groceries);
      
    groceries.add(1, 'Honey');
    System.debug('Added Honey in index 1: ' + groceries);
      
    System.debug('Item 0: ' + groceries[0]);
  3. Seleccione la casilla de verificación Open Log (Abrir registro) y haga clic en Execute (Ejecutar). Se abre Execution Log (Registro de ejecución), mostrando el resultado de la ejecución de su código.
  4. Seleccione la casilla de verificación Debug Only (Solo depurar) en la parte inferior de la pantalla.

Resultados interesantes:

Cuatro sucesos del registro de depuración. La línea 2 dice que se inicializaron las verduras: (null, null, null, null). La línea 6 dice que se agregaron 2 elementos: (null, null, null, null, Té, Azúcar). La línea 9 dice: Se agregó Miel en el índice 1: (null, Miel, null, null, Té, Azúcar). La línea 11 dice: El elemento 0: es nulo.

Cuando agregamos dos cadenas en las líneas 4 y 5 no especificamos un índice, de modo que Té y Azúcar se agregaron al final de la lista, aumentando el tamaño de la lista de cuatro cadenas a seis cadenas. En la línea 8 especificamos explícitamente el índice 1 para Miel y entonces, ¿por qué Miel no es la primera en la lista? Recuerde que cuando programamos, siempre empezamos a contar desde 0 en vez de 1. En la línea 11, el primer índice de la lista es 0, que en estos momentos contiene un valor null

Redactar código es muy parecido a hacer problemas matemáticos. Tiene una ecuación, pero hay muchas maneras de hacer una cosa. En esta unidad aprendió que hay más de una manera de trabajar con listas en Apex. Independientemente de que desee declarar una lista, inicializar una lista o hacer referencia a un valor específico de una lista, como lo haga es de su elección. ¿Demasiadas opciones? No se preocupe. Cuando se encuentre más cómodo con Apex, pruebe cosas de maneras diferentes y empezará a comprender más sobre qué maneras funcionan mejor en ciertas circunstancias.

Recursos

Comparta sus comentarios de Trailhead en la Ayuda de Salesforce.

Nos encantaría saber más sobre su experiencia con Trailhead. Ahora puede acceder al nuevo formulario de comentarios en cualquier momento en el sitio de Ayuda de Salesforce.

Más información Continuar a Compartir comentarios