jueves, 9 de marzo de 2017

La Clase ArrayList

Introducción

Los ejemplos de código los he desarrollado basándome en Visual Basic .NET aunque bien pueden ser aplicados para Visual C#.

Agregando Datos a la Colección

Esta clase nos ayuda a construir de forma muy fácil vectores. Cuenta con métodos, funciones y propiedades preconstruidas que son herramientas ideales para su manipulación y control. Veamos algunas de estas herramientas útiles para su uso.
Dim arr As ArrayList = New ArrayList()
arr.Add(“Amarillo”)
El método Add() es utilizado para agregar elementos a la colección del vector. Los elementos que podemos agregar pueden ser de varios tipos de datos. Aquí hemos hecho uso de cadenas o literales. Sin embargo, podrías utilizar números u otro tipo de datos. Es más, en un uso mucho más avanzados y como veremos en próximas clases, podrías agregar otros vectores e incluso tipos de clases especiales. En breve, en esta colección del vector en teoría podrías colocar lo que desees.
Dim vector() As String = {“Azul”, “Celeste”, “Violeta”, “Naranja”}
Dim arr As ArrayList = New ArrayList()
arr.AddRange(vector)
En el siguiente ejemplo hacemos uso de AddRange() que es utilizado para agregar datos como colección a nuestro vector aunque de una forma muy especial. En lugar de cargar cada color uno por uno, lo hacemos todo de un solo paso. Para ello, previamente creamos un vector de tipo String y le asignamos los valores tal como lo puedes ver en el código. Finalmente, el nombre de este vector String lo pasamos como elemento a la colección de datos en la variable del vector ArrayList llamado arr. Este método resulta muy práctico porque nos ahorra mucho código, es más eficiente y simplifica el proceso.

Remover Datos de la Colección

Así como podemos añadir elementos a la colección, también podemos eliminarlos. El proceso de eliminación más simple lo podemos ver en el siguiente ejemplo.
Dim arr As ArrayList = New ArrayList()
arr.Add(“Amarillo”)
arr.Add(“Verde”)
arr.Add(“Rojo”)
arr.Remove(“Amarillo”)
— o también usando —
arr.RemoveAt(0)
El siguiente ejemplo remueve de la colección de datos cargados un elemento específico llamado Amarillo dentro del vector ArrayList. La diferencia que existe entre Remove y RemoveAt es que en el primer caso, se remueve el elemento buscándolo por su nombre mientras que en el segundo caso se lo hace a través de su posicionamiento, acudiendo al índice del vector.
Dim vector() As String = {“Azul”, “Celeste”, “Violeta”, “Naranja”}
Dim arr As ArrayList = New ArrayList()
arr.Add(“Amarillo”)
arr.Add(“Verde”)
arr.Add(“Rojo”)
Aquí algunos ejemplos de Eliminación
arr.RemoveRange(0, 3) Vacía la colección
arr.RemoveRange(1, 2) Solo muestra Amarillo
arr.RemoveRange(1, 1) Solo elimina Verde
Como puede apreciar, la eliminación por rango mediante el método RemoveRange() podría ser útil para aquellos casos donde requieres quitar de una lista diversos elementos de modo discrecional. Por último, otro método utilizado para vaciar la colección de datos en el vector es el uso del método Clear(), como se muestra a continuación.
Dim vector() As String = {“Azul”, “Celeste”, “Violeta”, “Naranja”}
Dim arr As ArrayList = New ArrayList()
arr.Add(“Amarillo”)
arr.Add(“Verde”)
arr.Add(“Rojo”)
arr.Clear()

Posicionamientos e Índices

Para determinar la posición de su índice dentro del vector podemos hacer uso del siguiente código sencillo.
Dim arr As ArrayList = New ArrayList()
arr.Add(“Amarillo”)
arr.Add(“Verde”)
arr.Add(“Rojo”)
Dim result As Integer = arr.IndexOf(“Verde”)
Console.WriteLine(“Índice del color hallado: {0}”, result)
– El resultado es 1
En el ejemplo siguiente se mostrará anexado a la frase fina “Color hallado 1”. Si analizamos bien, veremos que el lugar donde se ubica el color Verde está sobre el índice 1 del vector. Ten en consideración que la ubicación del elemento dentro del vector no es absoluta. Ello quiere decir que si ordenamos alfabéticamente los datos, los posicionamientos serán distintos.
Dim arr As ArrayList = New ArrayList()
arr.Add(“Amarillo”)
arr.Add(“Verde”)
arr.Add(“Rojo”)
arr.Sort()
Dim result As Integer = arr.IndexOf(“Verde”)
Console.WriteLine(“Índice del color hallado: {0}”, result)
– El resultado es 2
Observa bien que aquí el posicionamiento de índice ha cambiado. En efecto, mediante el método Sort() que por defecto ordena de forma ascendente y de A-Z en valores literales ha obligado a reubicar nuevamente todos los elementos dentro del vector y en consecuencia, actualizar sus posicionamientos e índices.

Hallazgo de Valores en el Vector

Tal como vimos la determinación de los posicionamientos e índices, también podemos acceder a los datos almacenados en nuestro vector de forma directa. Veamos el siguiente ejemplo.
Dim arr As ArrayList = New ArrayList()
arr.Add(“Amarillo”)
arr.Add(“Verde”)
arr.Add(“Rojo”)
arr.Sort()
– El valor de resul es 2
Dim result As Integer = arr.IndexOf(“Verde”)
Dim hallado As String = arr.Item(result)
Console.WriteLine(“Índice del color hallado: {0}”, result)
Console.WriteLine(“Color hallado: {0}”, hallado)
Dado que la propiedad Item es utilizada para hallar los elementos ubicados dentro del vector, podremos con esta misma, obtener el valor que se ubique en dicho espacio. En el ejemplo, vemos como la función IndexOf() le pasa el valor de posicionamiento o índice hacia el parámetro de la propiedad índice. Luego finalmente, esta nos muestra el valor que se ubica en dicha posición que como vemos es el color Verde.

Contabilizar Todos los Elementos Añadidos al Vector

Toda la colección de datos de nuestro vector se puede determinar su cantidad máxima mediante el uso de la propiedad Count, tal como se muestra en el siguiente ejemplo.
Dim arr As ArrayList = New ArrayList()
arr.Add(“Amarillo”)
arr.Add(“Verde”)
arr.Add(“Rojo”)
arr.Sort()
Dim total As Integer = arr.Count
Console.WriteLine(“Cantidad de elementos: {0}”, total)
– El resultado es 3

Resumen

La clase ArrayList posee muchos otros métodos, funciones y propiedades más para un uso más específico y especial. El artículo solo exhibe los recursos de usos más genéricos y aquellos en los que podremos aplicar mayoritariamente en nuestro futuros proyectos.

No hay comentarios:

Publicar un comentario