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.
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.
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.
- Té
- Azúcar
- Miel
- 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.
Declarar una lista vacía
- En Developer Console, haga clic en Debug (Depuración) | Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
- 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);
- 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.
- 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.
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:
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:
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.
- Té
- Azúcar
- Miel
- 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:
- En Developer Console, haga clic en Debug (Depuración) | Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
- 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]);
- 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.
- 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:
- Declarar e inicializar una lista.
//Sets the first item in the list to 'Tea' List<String> groceries = new List<String>{'Tea'};
- 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.
- En Developer Console, haga clic en Debug (Depuración) | Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
- 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);
- 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.
- 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.
- En Developer Console, haga clic en Debug (Depuración) | Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
- 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);
- 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.
- Seleccione la casilla de verificación Debug Only (Solo depurar) en la parte inferior de la pantalla.
¿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:
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.
- En Developer Console, haga clic en Debug (Depuración) | Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
- 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]);
- 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.
- Seleccione la casilla de verificación Debug Only (Solo depurar) en la parte inferior de la pantalla.
Resultados interesantes:
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.