200 likes | 326 Views
Lenguaje de Programación .Net LDP3501: Visual Studio .Net 2008 Manejo de Colecciones y Listas: ArrayList , List <T>, Hashtable y Diccionarios. Colecciones y Listas. Datos agrupados. Arreglos de variables. 0,0. 0,1. 0,0. 0,1. 0,2. 0,3. 0. 1,0. 1,1. 1,2. 1,3. 1,0. 1,1. 1,2.
E N D
Lenguaje de Programación .Net LDP3501: Visual Studio .Net 2008 Manejo de Colecciones y Listas: ArrayList, List<T>, Hashtable y Diccionarios
Colecciones y Listas • Datos agrupados. • Arreglos de variables. 0,0 0,1 0,0 0,1 0,2 0,3 0 1,0 1,1 1,2 1,3 1,0 1,1 1,2 1,3 1 2,0 2,1 2,2 2,0 2,1 2,2 2,3 2 3,0 3,1 3,2 3,3 3 /* Crea un arreglos de números de 3 posiciones */ int[] números = new int[3];
Colecciones y Listas • Colecciones especializadas. • System.Collections y System.Collections.Generics. • Facilidades de manejo: Agregar, Ordenar, Eliminar, Insertar y Recuperar. • Clases ArrayList y List<T>. • Versiones sofisticadas de una matriz.
Colecciones y Listas • La capacidad de Array es fija, mientras que la capacidad de ArrayList o List(T) se amplía automáticamente si es necesario. • ArrayList y List(T) proporcionan métodos para agregar, insertar o quitar un intervalo de elementos. En una colección Array, sólo puede obtener o establecer un valor para un elemento cada vez.
Colecciones y Listas • Se puede establecer el límite inferior de Array, pero el límite inferior de ArrayList o List(T) siempre es cero. • Array puede tener varias dimensiones, mientras que ArrayList o List(T) siempre tienen una dimensión exactamente. • ArrayList almacena elemntos de tipo Object. List trabaja con seguridad de tipos
Colecciones y Listas Declaración ArrayList nombre = new ArrayList (); List<tipo> nombre = new List<tipo>(); Ejemplo using System; using System.Collections.Generic; public class Lista { List‹string› listacolores = new List‹string›(); }
Colecciones y Listas Añadir elementos List‹string› ListaColores = new List‹string›(); ListaColores.Add ("Azul"); ListaColores.Add ("Rojo"); ListaColores.Add ("Verde"); ListaColores.Add ("Amarillo"); ListaColores.Add ("Morado"); Acceso a los elementos Console.WriteLine (ListaColores[1]); ListaColores[2] = "Negro";
Colecciones y Listas Acceso mediante ciclo foreach /* Mostrar todos los colores de la lista */ foreach (string color in ListaColores) { Console.WriteLine ( color ); } Insertarelementos ListaColores.Insert(2, "Blanco");
Colecciones y Listas Ordenamiento de la lista ListaColores.Sort(); Búsqueda de elementos ListaColores.Contains(“Amarillo”); // true ListaColores.IndexOf("Amarillo")); // 3 ListaColores[ListaColores.IndexOf("Amarillo")] = "Negro";
Colecciones y Listas Información de elementos Borrado de elementos ListaColores.Count; ListaColores.Clear(); ListaColores.RemoveAt(2); ListaColores.Remove(“Amarillo”);
Colecciones y Listas Actividad 1: Manejo de ArrayList
Colecciones y Listas Tipos Genéricos (Generics) • Incluidos en la versión 2.0 • Concepto de parámetros de tipo <T>. • Reusabilidad, seguridad de tipos y eficacia. • Mejora el rendimiento al no estar trabajando con elementos Object (boxing y unboxing).
Colecciones y Listas Problema de la agrupación no tipada. System.Collections.ArrayList lista = new System.Collections.ArrayList(); // Agrega un número. lista.Add(3); // Agrega una cadena. lista.Add("Azul"); int t = 0; // Esto causa una excepción del tipo InvalidCastException. foreach (int x in lista) { t += x; }
Colecciones y Listas Problema de la agrupación no tipada. // Declara una lista genérica para tipos enteros List<int> lista = new List<int>(); // Sin boxing ni casting: lista.Add(3); // Esto daría un error de compilación al chequear el tipo: // lista.Add("Azul");
Colecciones y Listas Actividad 2: Manejo de Listas Genéricas
Colecciones y Listas Hashtables • Asignación de una clave para acceder a los elementos. • Implementación de IDictionary. • Manejo de sectores de almacenamiento para rápido acceso. • Elementos de componen del un par clave-valor. • Instancias de DictionaryEntry.
Colecciones y Listas Declaración Agregar elementos Hashtable nombre = new Hashtable(); Hashtablecoleccion = new Hashtable(); for (i=0; i < 5; i++) { coleccion.Add(i, string.Format(“Elemento {0}”, i)); }
Colecciones y Listas /* Mostrar todos los colores de la lista */ foreach(DictionaryEntry entrada in ListaColores) { Console.WriteLine ( entrada.Key); Console.WriteLine ( entrada.Value); } Acceso mediante ciclo foreach Validación de llaves stringllave = “Uno”; if (coleccion.ContainsKey(llave)) { Console.WriteLine(“Llave existe”); }
Colecciones y Listas Actividad 3: Manejo de Hashtable