Explicar las características de las colecciones.
Podríamos definirlas como una enumeración, a la que se le pueden añadir o quitar elementos.
Podríamos definirlas como un array que en lugar de ser estático en el número de elementos, permite la adición y la eliminación de elementos, o sea que es dinámico, y que además esos elementos pueden ser objetos.
Desde el momento en que podemos declarar un array del tipo de un objeto determinado, un array es muy similar a una colección.
En VB las clases que gestionan
colecciones son
Array
System.Collections
La clase array para la gestión con matrices.
La clase Collections dispone de dos clases a su vez:
Generic
Specialized
Los métodos para una colección son los necesarios para la gestión de la misma, y dado que no disponemos de un índice propiamente dicho, la gestión se basa en su recorrido, adición y eliminación.
Las colecciones disponen de un Enumerador que es un objeto que recorre en iteración su colección asociada.
La instrucción for each utiliza el enumerador y oculta la complejidad que supone su uso.
Todas las colecciones pueden copiarse en una matriz usando el método CopyTo, sin embargo, el orden de los elementos de la nueva matriz se basará en la secuencia en la que los devuelve el enumerador.
La matriz resultante siempre es unidimensional, vector, y su límite inferior es cero.
Algunas clases Collections tienen capacidades de ordenación y la mayor parte están indexadas.
La administración de la memoria se controla automáticamente y la capacidad de una colección se expande si es necesario.
Las clases System Collections pueden dividirse en tres tipos:
Colecciones utilizadas normalmente. Son las variaciones habituales de las colecciones de datos, como tablas hash, colas, pilas, diccionarios y listas. Las colecciones que su usan habitualmente tienen versiones genéricas y no genéricas.
Colecciones de bits. Se trata de colecciones cuyos elementos son indicadores de bits. Se comportan de forma ligeramente diferente de las demás.
Colecciones especializadas. Se trata de colecciones con fines muy específicos, normalmente para tratar un tipo concreto de elemento, como StringDictionary.
Los tipos de colecciones a utilizar se basan en la forma en la que se realiza el acceso.
Lista Secuencial en la que se descarta el miembro tras su recuperación, Lifo, Fifo.
Snack, Pilas
Queue, Colas
LinkedList
Si se desea acceder por un índice
StringCollection ArrayList
List HashTable
SortedList ListDictionary
StringDictionary
A su vez cada una de ellas en casos concretos son mejores que otras, por ejemplo ListDictionary es más rápida que HashTable en colecciones pequeñas.
La definición de una colección es como sigue.
Dim Coleccion As System.Collections.SortedList
La forma de añadir elementos
Coleccion.add(123,"Mesas")
Conviene que realice la creación de la colección con distintos tipos de colección y observe el cambio de los métodos disponibles en la misma en función del tipo elegido.
Dim Coleccion As System.Collections.Queue
En este tipo de colección el insertar un elemento tiene una sintaxis distinta.
Dim Algo as New Object
Dim Objetos As New System.Collections.Queue
Objetos.Enqueue(Algo)
Se está utilizando una cola, una lista.
Todo esto va englobado después en una estructura repetitiva en la cual se crea la colección para tratarla posteriormente.
Pero el uso de una colección no se limita al uso de algo tan sencillo como un string.
Podemos utilizar objetos en una colección.
Podemos hacer éste otro uso en una colección:
Creamos una clase de la que instanciar luego objetos.
Public Class Datos
Public Nombre As String
Public Sub New()
End Sub
End Class
Para después realizar algo parecido a lo siguiente:
Module Module1
Sub Main()
Console.WriteLine("Carga colección de objetos.")
Dim Coleccion As System.Collections.Generic.List(Of Datos)
Dim Item As New Datos
Item.Nombre = "Silla"
Coleccion.Add(Item)
Item = New Datos()
Item.Nombre = "Naranja"
Coleccion.Add(Item)
End Sub
End Module
El ejemplo anterior funciona correctamente tal como se describe, sin embargo como prueba de lo que a veces la lógica te puede llevar a hacer, conviene probarlo comentando la siguiente línea.
Item = new Datos()
El resultado es que al recorrer la colección, se muestra solo el último valor introducido en la misma.
Síguenos en: Facebook Sobre aulaClic Política de Cookies