Utilizar colecciones
Objetivos de aprendizaje
Después de completar esta unidad, podrá:
- Declarar e iniciar una lista.
- Explicar las dos formas de agregar elementos a una lista.
Colecciones
Una colección es un tipo de variable que puede almacenar varios elementos. En el ejemplo del té, tenemos un azucarero que contiene varios terrones de azúcar. Se considera que el azucarero es la colección y los terrones de azúcar son los elementos almacenados en esa colección.
Aunque hay tres tipos de colecciones de Apex (listas, conjuntos y asignaciones), en este módulo nos centraremos 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 en la lista. Para declarar una lista necesita varias cosas. Utilizará la palabra reservada de la lista, el tipo de datos (todos los elementos deben ser del mismo tipo de datos) dentro de los <> caracteres, y la palabra reservada nueva. Al final de esta declaración se necesitan paréntesis.
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 este código y péguelo en la ventana Introducir 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 Abrir registro y haga clic en Ejecutar. Se abre el registro de ejecución, que muestra el resultado de la ejecución del código.
- Seleccione la casilla de verificación Solo depurar en la parte inferior de la pantalla.
Cuando ejecutó el código, es posible que observara que el resultado era (). Como no ha agregado nada a la lista, está vacía. Cuando declaró la lista groceries
(lista de la compra), creó un espacio vacío preparado para agregar elementos.
Declarar una lista con un tamaño establecido
Si conocemos el tamaño exacto de la lista, podemos establecerlo cuando declaramos la lista. Lo hacemos incluyendo el tamaño entre corchetes [ ] después del tipo de datos. Sería así:
Este código declara una lista de cadenas llamada groceries, y establece el tamaño en 4 cadenas. La lista vacía groceries tiene el siguiente aspecto:
La posición secuencial de un elemento es un número llamado índice. El índice es la manera en la que nos referimos a los elementos. Probablemente haya aprendido a contar empezando por el número uno. Sin embargo, en muchos lenguajes de programación, se empieza a contar por el número cero. Por ello, ahora nuestra lista tendrá el siguiente aspecto cuando escribimos el código Apex.
- Té
- Azúcar
- Miel
- Leche
El índice que utiliza para señalar un cierto elemento en la lista será índice 0 para Té, índice 1 para Azúcar, índice 2 para Miel, y así sucesivamente.
Se hace referencia a un elemento en la lista por su índice (su posición dentro de la lista), como en este ejemplo:
- En Developer Console, haga clic en Debug (Depuración) | Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
- Copie este código y péguelo en la ventana Introducir 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 Abrir registro y haga clic en Ejecutar. Se abre el registro de ejecución, que muestra el resultado de la ejecución del código.
- Seleccione la casilla de verificación Solo depurar en la parte inferior de la pantalla.
El valor del primer elemento en la lista es null. Vamos a agregar unos cuantos elementos en la lista.
Iniciar una lista
El proceso de iniciar una lista consiste en asignar valores iniciales a una lista. Existen dos formas de agregar elementos a una lista:
- Declarar e iniciar 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 adelante.
List<String> groceries = new List<String>(); groceries.add('Tea');
Declarar e iniciar una lista
La sintaxis para iniciar una lista con valores es parecida a la de declarar una lista vacía. La diferencia es que, en lugar de utilizar paréntesis ( ( )
), se utilizan llaves ( { }
) para agregar valores.
- En Developer Console, haga clic en Depuración | Abrir ventana de ejecución anónima.
- Copie este código y péguelo en la ventana Introducir 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 Abrir registro y haga clic en Ejecutar. Se abre el registro de ejecución, que muestra el resultado de la ejecución del código.
- Seleccione la casilla de verificación Solo depurar en la parte inferior de la pantalla.
Declarar una lista vacía y agregar valores más adelante
Pero, ¿qué ocurre si quiere agregar elementos más tarde? Apex proporciona métodos que le permiten trabajar con listas. Utilicemos el método add para agregar alimentos a la lista de la compra.
- En Developer Console, haga clic en Debug (Depuración) | Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
- Copie este código y péguelo en la ventana Introducir 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 Abrir registro y haga clic en Ejecutar. Se abre el registro de ejecución, que muestra el resultado de la ejecución del código.
- Seleccione la casilla de verificación Solo depurar en la parte inferior de la pantalla.
¿Ha observado el punto (“.”) entre groceries
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
(lo que proporciona Apex) con la lista groceries
con un punto para agregar un elemento (Té) a la lista.
En la línea 11 se puede observar otra manera de agregar un elemento a la lista: insertar el elemento en un índice (posición) específico:
A medida que continúe el trabajo con el código Apex, aprenderá a determinar qué método utilizar. Pero los aspectos básicos que aprenda en esta unidad pueden ayudarle a comenzar.
Listas de desmitificación
Las diferentes formas de agregar elementos a una lista producen resultados ligeramente distintos; a veces, son resultados no esperados. Pruebe a hacer este ejercicio.
- En Developer Console, haga clic en Depuración | Abrir ventana de ejecución anónima.
- Copie este código y péguelo en la ventana Introducir 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 Abrir registro y haga clic en Ejecutar. Se abre el registro de ejecución, que muestra el resultado de la ejecución del código.
- Seleccione la casilla de verificación Solo depurar en la parte inferior de la pantalla.
Los resultados son interesantes:
Cuando agregamos las dos cadenas en las líneas 4 y 5, no especificamos un índice, por lo que Té y Azúcar se agregaron al final de la lista, aumentando el tamaño de la lista, que pasó de 4 cadenas a 6. En la línea 8, especificamos explícitamente el índice 1 para Miel, así que ¿por qué Miel no es el primer elemento de la lista? Recuerde que, en programación, empezamos a contar desde 0, no desde 1. En la línea 11, el primer índice en la lista es 0, que contiene un valor null
.
Escribir código es un proceso parecido al de resolver problemas de matemáticas. Tiene una ecuación, pero hay muchas maneras de hallar el resultado. En esta unidad, ha aprendido que hay más de una manera de trabajar con listas en Apex. En el caso de que quiera declarar una lista, iniciarla o referirse a un valor específico en la lista, usted decide la manera de hacerlo. ¿Tiene demasiadas opciones? No se preocupe. Cuando esté más familiarizado con Apex, pruebe cosas distintas, y empezará a entender cuáles son los mejores métodos para llevar a cabo en cada circunstancia.