Programación de Objetos.Net C# LDP / DUOC-AV. Manejo de Colecciones y Listas... 1 Colecciones ArrayList y List... 1

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Programación de Objetos.Net C# LDP3501-2011 / DUOC-AV. Manejo de Colecciones y Listas... 1 Colecciones ArrayList y List... 1"

Transcripción

1 En esta guía: Programación de Objetos.Net C# LDP / DUOC-AV Manejo de Colecciones y Listas... 1 Colecciones ArrayList y List... 1 Añadir artículos a las listas...3 Acceso a los elementos...3 Inserción de artículos en una lista...4 Ordenando Listas...4 Búsqueda de elementos en una lista...4 Obtener información de una lista...5 Borrado de elementos...5 Introducción a los Tipos Genéricos (Generics)... 6 Colecciones Hashtable y Diccionarios... 8 La clase HashTable...8 La clase Dictionary(TKey, TValue)...10

2 Manejo de Colecciones y Listas Cuando se tiene la necesidad de manejar datos estrechamente relacionados, estos se pueden tratar con más eficacia si se agrupan en una colección. En lugar de escribir código independiente para tratar cada objeto individualmente, puede usar el mismo código para procesar todos los elementos de una colección. La forma más escencial de agrupamiento de elementos se presenta mediante las estructuras de arreglos que podemos definir y crear al momento de la declaración: /* Crea un arreglos de números de 3 posiciones */ int[] números = new int[3]; Las colecciones de clases de C# son un conjunto de clases diseñadas específicamente para agrupar objetos y llevar a cabo tareas con ellos. Tanto la list T como la ArrayList y otras clases de la Collections tienen propiedades muy similares a los arrays de C#. Una ventaja fundamental de estas clases sobre los arrays es que puedan crecer y reducir el número de objetos almacenados. 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. Algunas clases Collections pueden generar contenedores que hacen que la colección sea de sólo lectura o que tenga un tamaño fijo. Algunas clases Collections pueden generar su propio enumerador que facilita la iteración por los elementos. Colecciones ArrayList y List Tanto un objeto ArrayList como un objeto List<T> son versiones más sofisticadas de una matriz. La clase ArrayList y la clase genérica List<T> proporcionan algunas de las características que se proporcionan en la mayoría de las clases System.Collections, pero que no se proporcionan en la clase Array. Por ejemplo: La capacidad de Array es fija, mientras que la capacidad de ArrayList o List(T) se amplía automáticamente si es necesario. Si se cambia el valor de la propiedad Capacity, la memoria se reasigna y los elementos se copian automáticamente. 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. Resulta fácil crear una versión sincronizada de ArrayList con el método Synchronized. La clase Array deja que el usuario decida si va a implementar la sincronización. ArrayList y List(T) proporcionan métodos que devuelven a la colección contenedores de sólo lectura y de tamaño fijo, mientras que Array no lo hace. Página 1

3 Por otra parte, Array ofrece cierta flexibilidad que ArrayList y List(T) no proporcionan. Por ejemplo: 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. Un objeto Array de un tipo específico distinto de Object ofrece mejor rendimiento que ArrayList ya que los elementos de ArrayList son de tipo Object y, por lo tanto, las conversiones boxing y unboxing se producirán normalmente al almacenar o recuperar un tipo de valor. Sin embargo, List(T) puede presentar un rendimiento similar al de una matriz del mismo tipo siempre que no se requiera ninguna reasignación, es decir, siempre que la capacidad inicial sea una aproximación acertada del tamaño máximo de la lista. En la mayoría de las situaciones en las que se requiere una matriz, se puede utilizar en su lugar un objeto ArrayList o List(T); son más fáciles de utilizar y, por lo general, presentan un rendimiento similar al de una matriz del mismo tipo. Array está en el espacio de nombres System; ArrayList, en System.Collections; y List(T), en System.Collections.Generic. Por lo cual debemos verificar que estos estén declarados en la cabecera del código mediante la respectiva instrucción using. ArrayList es un objeto creado de una manera similar, aunque sin el argumento de tipo: ArrayList nombre = new ArrayList (); La sintaxis para crear una colección list T es la siguiente: List tipo nombre = new List tipo (); Con esta sintaxis ahora podemos crear una list T denominada listacolores: using System; using System.Collections.Generic; public class Lista List string listacolores = new List string (); Página 2

4 Añadir artículos a las listas Una vez que una lista se ha creado hay una serie de métodos que pueden ser llamados a realizar tareas en la lista. En este caso para agregar elementos a la lista de objetos se utiliza el método Add(). Ejemplo: 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 A los elementos individuales en una lista se puede acceder mediante el índice del valor de la partida (teniendo en cuenta que el primer punto del índice es 0, el segundo índice 1 y así sucesivamente). El valor del índice se encuentra entre corchetes tras el nombre de la lista. Por ejemplo, para acceder al segundo punto del objeto ListaColores: Console.WriteLine (ListaColores[1]); Un elemento de la lista puede cambiar su valor de manera similar usando el índice combinado con el operador de asignación. Por ejemplo, para cambiar el color de verde a mamey: ListaColores[2] = "Negro"; Todos los elementos de una lista se pueden acceder mediante un bucle foreach. Por ejemplo: /* Mostrar todos los colores de la lista */ foreach (string color in ListaColores) Console.WriteLine ( color ); Página 3

5 Inserción de artículos en una lista Anteriormente se utilizó el método Add() para añadir elementos a una lista. El método Add(), sin embargo, sólo añade elementos al final de una lista. A veces es necesario añadir un nuevo tema en una ubicación específica en una lista. Insert() es el método para este fin específico. Insert() recibe dos argumentos, un entero que indica el índice de localización de la inserción y el tema que se incluirá en ese lugar. Por ejemplo, para insertar un elemento en la posición 2 de la lista sería: ListaColores.Insert(2, "Blanco"); Ordenando Listas No hay manera de decirle a C# que ordene automáticamente una lista de artículos despues de añadir. Si los elementos de una lista deben estar siempre ordenados se debe llamar al metodo Sort una vez se añaden nuevos elementos: ListaColores.Sort(); Alternativamente se cuenta con clases de colección especializadas para estos efectos como SortedList y SortedList<T>. Búsqueda de elementos en una lista Se proveen un buen número de métodos con las clases List y la ArrayList. El método más básico es el Contains(), en el cual cuando se pide a un objeto ArrayList o List devuelve true si el tema se encuentra en la lista, o false si no se encuentra. El IndexOf() devuelve el valor de un índice de un elemento de la lista. Por ejemplo, el código siguiente muestra el valor de salida de 3, que es el índice de la posición de "Amarillo" en la cadena: List string ListaColores = new List string (); ListaColores.Add ("Azul"); ListaColores.Add ("Rojo"); ListaColores.Add ("Verde"); ListaColores.Add ("Amarillo"); Console.WriteLine(ListaColores.IndexOf("Amarillo")); Si el elemento no se encuentra en la lista devuelve -1. Página 4

6 Esta técnica podría utilizarse para reemplazar un valor con otro. Por ejemplo, sin conocer de antemano el valor del índice del "Amarillo" cadena podemos cambiar a "Negro": ListaColores[ListaColores.IndexOf("Amarillo")] = "Negro"; El LastIndexOf() método devuelve el valor del índice del último elemento de la lista para que coincida con el punto especificado. Esto es particularmente útil cuando la lista contiene elementos duplicados. Obtener información de una lista Hay dos miembros de la clase que son útiles para obtener información acerca de una lista de C # o colección de objetos ArrayList. La propiedad Capacity puede ser utilizada para identificar el número de artículos que puede almacenar una colección sin tener que cambiar el tamaño. El propiedad Count, por otra parte, identifica cuantos artículos se encuentran actualmente almacenados en la lista. Por razones obvias, Capacity será siempre superior a Count. Borrado de elementos Todos los elementos de una lista podrán ser borrados mediante el método Clear(): ListaColores.Clear(); Clear() elimina los elementos de la lista y establece la propiedad Count a cero. La propiedad Capacity, sin embargo, sigue siendo la misma. Para eliminar la propiedad Capacity después del método Clear() hay que llamar a TrimExcess(). Con el método Remove() y RemoveAt, se pueden eliminar los elementos específicos que se desean. Por ejemplo, para eliminar un elemento en la posición 2 de la lista sería: ListaColores.RemoveAt(2); Para poder eliminar el elemento Amarillo sería de la siguiente forma: ListaColores.Remove( Amarillo ); Página 5

7 Introducción a los Tipos Genéricos (Generics) Los tipos genéricos se agregaron a la versión 2.0 del lenguaje C# y Common Language Runtime (CLR). Estos tipos agregan el concepto de parámetros de tipo a.net Framework, lo cual permite diseñar clases y métodos que aplazan la especificación de uno o más tipos hasta que el código de cliente declara y crea una instancia de la clase o del método. Por ejemplo, mediante la utilización de un parámetro de tipo genérico T, se puede escribir una clase única que otro código de cliente puede utilizar sin generar el costo o el riesgo de conversiones en tiempo de ejecución u operaciones de conversión boxing, Las clases y los métodos genéricos combinan reusabilidad, seguridad de tipos y eficacia de una manera que sus homólogos no genéricos no pueden. Los tipos genéricos se utilizan frecuentemente con las colecciones y los métodos que funcionan en ellas. La versión 2.0 de la biblioteca de clases de.net Framework proporciona un nuevo espacio de nombres, System.Collections.Generic, que contiene varias clases nuevas de colección basadas en tipos genéricos. Se recomienda que todas las aplicaciones destinadas a.net Framework 2.0 y versiones posteriores utilicen las nuevas clases de colección genéricas en lugar de sus homólogas no genéricas anteriores, como ArrayList. Los tipos genéricos proporcionan la solución a una limitación de las versiones anteriores de Common Language Runtime y del lenguaje C#, en los que se realiza una generalización mediante la conversión de tipos a y desde el tipo base universal Object. Con la creación de una clase genérica, se puede crear una colección que garantiza la seguridad de tipos en tiempo de compilación. Las limitaciones del uso de clases de colección no genéricas se pueden demostrar escribiendo un breve programa que utilice la clase de colección ArrayList de la biblioteca de clases base de.net Framework. ArrayList es una clase de colección muy conveniente, que se puede utilizar sin modificar para almacenar tipos de referencia o tipos de valor. System.Collections.ArrayList lista1 = new System.Collections.ArrayList(); lista1.add(3); lista1.add(105); System.Collections.ArrayList lista2 = new System.Collections.ArrayList(); lista2.add("azul"); lista2.add("amarillo"); Pero esta conveniencia tiene su costo. Cualquier referencia o tipo de valor agregado a un objeto ArrayList se convierte implícitamente a Object. Si los elementos son tipos de valor, se les debe aplicar la conversión boxing cuando se agregan a la lista y la conversión unboxing cuando se recuperan. Tanto las operaciones de conversión de tipos como las de conversiones boxing y unboxing reducen el rendimiento; el efecto de las conversiones boxing y unboxing puede ser muy notable en los casos en los que se deben recorrer en iteración colecciones extensas. Página 6

8 La otra limitación es la ausencia de comprobación de tipos en tiempo de compilación; dado que un objeto ArrayList convierte todo a Object, en tiempo de compilación no hay forma de evitar que el código de cliente haga cosas como la siguiente: 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; Aunque es perfectamente válido y a veces intencionado si se crea una colección heterogénea, es probable que la combinación de cadenas y valores int en un objeto ArrayList único sea un error de programación, el cual no se detectará hasta el tiempo de ejecución. Lo que ArrayList y otras clases similares realmente necesitan es un modo de que el código de cliente especifique, por instancias, el tipo de datos particular que se va a utilizar. Eso eliminaría la necesidad de convertir a T:System.Object y también haría posible que el compilador realizara la comprobación de tipos. Es decir, ArrayList necesita un parámetro de tipo. Eso es precisamente lo que los tipos genéricos proporcionan. En la colección genérica List(T), en el espacio de nombres System.Collections.Generic, la misma operación de agregar elementos a la colección tiene la apariencia siguiente: // Declara una lista generica 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"); En el código de cliente, la única sintaxis que se agrega con List(T) en comparación con ArrayList es el argumento de tipo en la declaración y creación de instancias. A cambio de esta complejidad de codificación ligeramente mayor, se puede crear una lista que no sólo es más segura que ArrayList, sino que también es bastante más rápida, en especial cuando los elementos de lista son tipos de valor. Página 7

9 Colecciones Hashtable y Diccionarios Al manejar los elementos agrupados en clases de colecciones especializadas, tenemos ventajas en su manejo mediante los distintos métodos que se disponen para ello. No obstante la mejora analizada en el manejo de ArrayList versus List<T>, respecto de la seguridad de tipos, ambas colecciones continúan accediendo a los elementos en base a su índice o contenido, pero en ocasiones es requerido coleccionar objetos más complejos y con la misma facilidad de acceso. Para estos escenarios se provee de clases de colección que manejan una llave o clave para identificar alguno de los elementos coleccionados y retornarlos como un todo. La clase Hashtable y la clase genérica Dictionary(TKey, TValue) implementan la interfaz IDictionary. La clase genérica Dictionary(TKey, TValue) también implementa la interfaz genérica IDictionary(TKey, TValue). Por consiguiente, todos los elementos de estas colecciones son un par de clave y valor. Un objeto Hashtable está formado por sectores que contienen los elementos de la colección. Un sector de almacenamiento es un subgrupo virtual de elementos dentro de la Hashtable con el que se consigue facilitar y agilizar la búsqueda y la recuperación con respecto a la mayoría de las colecciones. Cada sector de almacenamiento está asociado con un código hash, generado con una función hash y basado en la clave del elemento. Cada objeto utilizado como elemento en una Hashtable deberá poder generar un código hash para sí mismo mediante una implementación del método GetHashCode. Aun así, también puede especificarse una función hash para todos los elementos en Hashtable mediante un constructor de Hashtable que acepte como parámetro una implementación de IHashCodeProvider. Cuando se agrega un objeto a Hashtable, éste pasa al sector de almacenamiento asociado al código hash que coincide con el suyo propio. Cuando se busca un valor en Hashtable, se genera el código hash para ese valor y se busca el sector de almacenamiento asociado al código. La clase Dictionary(TKey, TValue) tiene la misma funcionalidad que la clase Hashtable. Un Dictionary(TKey, TValue) de un tipo específico (que no sea Object) rinde más que la clase Hashtable para los tipos de valores, ya que los elementos de Hashtable son del tipo Object y, por tanto, se producen conversiones boxing y unboxing si se almacena o recupera un valor. La clase HashTable Cada elemento es un par de clave y valor almacenado en un objeto DictionaryEntry. Una clave no puede ser referencia null, pero un valor sí puede serlo. Cuando se agrega un elemento a Hashtable, el elemento se coloca en un sector de almacenamiento en función del código hash de la clave. Las búsquedas posteriores de la clave utilizarán su código hash para buscar en un sector de almacenamiento determinado solamente; de este modo, se reducirá considerablemente el número de comparaciones de clave necesarias para encontrar un elemento. Página 8

10 Cada objeto de clave de Hashtable debe proporcionar su propia función hash, a la que se tiene acceso llamando al método GetHash. Sin embargo, se puede pasar cualquier objeto que implemente IHashCodeProvider a un constructor Hashtable y utilizar esa función hash para todos los objetos de la tabla. La capacidad de Hashtable es el número de elementos que Hashtable puede contener. Conforme se agregan elementos a Hashtable, la capacidad aumenta automáticamente según lo requiera la reasignación. La instrucción foreach del lenguaje C# requiere el tipo de cada elemento de la colección. Como los elementos de Hashtable son pares de clave y valor, el tipo del elemento no se corresponde con el tipo de la clave ni con el del valor. En su lugar, el tipo del elemento es DictionaryEntry. Por ejemplo: foreach (DictionaryEntry entrada in coleccion)... La instrucción foreach es un contenedor del enumerador, que sólo permite la lectura pero no la escritura en la colección. Dado que la serialización y deserialización de un enumerador para un objeto Hashtable puede provocar la reordenación de los elementos, no es posible continuar con la enumeración sin llamar antes al método Reset. El siguiente código muestra la declaración y adición de elementos a un HashTable: Hashtable coleccion = new Hashtable(); for (i=0; i < 5; i++) coleccion.add(i, string.format( Elemento 0, i)); Si bien se trata de un ejemplo básico que se puede solucionar con un ArrayList, se muestra el manejo de una clave para identificar cada elemento. El manejo de las claves requiere que estas sean únicas al momento de agregar un elemento al Hashtable, si se ingrese una misma clave para elementos distintos se generará una excepción indicando esta situación. Al momento de realizar la inserción o la búsqueda de elementos se puede hacer uso del método ContainsKey(), con el cual se puede verificar si la llave ya está asignada a un elemento de la colección, el siguinete ejemplo demuestra su uso: string llave = Uno ; if (coleccion.containskey(llave)) Console.WriteLine ( Llave existe ); else Página 9

11 Console.WriteLine( Llave no existe ); La clase Dictionary(TKey, TValue) Esta es una implementación especializada y genérica de un Hashtable, que permite la asociación de pares valor y su recorrido como tal. La clase genérica Dictionary(TKey, TValue) proporciona una asignación de un conjunto de claves a un conjunto de valores. Cada elemento que se agrega al diccionario está compuesto de un valor y su clave asociada. Recuperar un valor utilizando su clave es muy rápido, porque la clase Dictionary(TKey, TValue) se implementa como una tabla hash. Mientras se utilice un objeto como clave en el diccionario Dictionary(TKey, TValue), dicho objeto no se debe modificar en modo alguno que afecte a su valor hash. Cada clave de un diccionario Dictionary(TKey, TValue) debe ser única conforme al comparador de igualdad del diccionario. Una clave no puede ser referencia null, aunque un valor sí puede serlo si el tipo de valor TValue es un tipo de referencia. La capacidad de una colección Dictionary(TKey, TValue) es el número de elementos que dicha Dictionary(TKey, TValue) puede contener. Cuando se agregan elementos a una colección Dictionary(TKey, TValue), la capacidad aumenta automáticamente según sea necesario mediante la reasignación de la matriz interna. Para la enumeración, cada elemento del diccionario se trata como una estructura KeyValuePair(TKey, TValue) que representa un valor y su clave. El orden en que se devuelven los elementos queda sin definir. La instrucción foreach del lenguaje C# requiere el tipo de cada elemento de la colección. Puesto que Dictionary(TKey, TValue) es una colección de claves y valores, el tipo de elemento no es el tipo de la clave, ni el tipo del valor. En su lugar, el tipo de elemento es una estructura KeyValuePair(TKey, TValue) del tipo de la clave y del tipo del valor. Por ejemplo: foreach (KeyValuePair<int, string> par in diccionario)... En el ejemplo de código siguiente se crea una colección Dictionary(TKey, TValue) vacía de cadenas con claves de cadena y se utiliza el método Add para agregar algunos elementos. En él, se muestra que el método Add produce una excepción ArgumentException cuando se intenta agregar una clave duplicada. // Crea un Nuevo diccionario de cadenas. Dictionary<string, string> extensiones = new Dictionary<string, string>(); // Agrega los elementos al diccionario. extensiones.add("txt", "notepad.exe"); extensiones.add("bmp", "paint.exe"); extensiones.add("dib", "paint.exe"); extensiones.add("rtf", "wordpad.exe"); Página 10

12 Es común que en el manejo de diccionarios la clave de acceso es conocida y los elementos asociados son cargados acorde al contexto del problema. Un ejemplo de esto puede ser la traducción de palabras a partir de una palabra como clave y distintos diccionarios son creados con el valor del idioma que representan en base a la misma clave. También se puede utilizar la propiedad Item para recuperar los valores, si la clave indicada no existe se produce una excepción KeyNotFoundException. string llave = txt ; try Console.WriteLine("Llave 0, valor = 1.", extensiones[valor]); catch (KeyNotFoundException) Console.WriteLine("Llave no encontrada."); También se puede utilizar el método TryGetValue como una forma más eficaz de recuperar valores si un programa debe probar con frecuencia valores de clave que no están en el diccionario, y a su vez el método ContainsKey para comprobar si una clave existe antes de llamar al método Add. El siguiente ejemplo muestra como enumerar las claves y los valores del diccionario. // foreach enumerará los elementos con un objeto KeyValuePair. foreach( KeyValuePair<string, string> par in diccionario ) Console.WriteLine("LLave = 0, Valor = 1", par.key, par.value); Página 11

Estructuras de datos. Colecciones en C#. Arreglos, Listas, Pilas, Colas y Árboles Métodos de búsqueda y ordenamiento

Estructuras de datos. Colecciones en C#. Arreglos, Listas, Pilas, Colas y Árboles Métodos de búsqueda y ordenamiento Estructuras de datos. Colecciones en C#. Arreglos, Listas, Pilas, Colas y Árboles Métodos de búsqueda y ordenamiento Temas Colecciones en C# Tipos de estructuras de datos Arreglos, listas, pilas y colas

Más detalles

Programación.Net Lenguaje C#

Programación.Net Lenguaje C# En esta guía: Programación.Net Lenguaje C# Conversiones de Tipos... 1 Conversión boxing y unboxing... 1 Boxing... 1 Unboxing... 1 Conversiones Implícitas... 2 Conversiones Explícitas... 2 Conversiones

Más detalles

Algoritmos y Programación Orientada a Objetos I. Contenedoras de tamaño variable y uso de ciclos en otros contextos

Algoritmos y Programación Orientada a Objetos I. Contenedoras de tamaño variable y uso de ciclos en otros contextos Algoritmos y Programación Orientada a Objetos I y uso de ciclos en otros contextos Agenda Motivación Uso de ciclos en otros contextos Agenda Motivación Uso de ciclos en otros contextos Motivación En muchos

Más detalles

Agenda..NET C# Laboratorio #1

Agenda..NET C# Laboratorio #1 PROGRAMACIÓN III Agenda.NET C# Laboratorio #1 .NET Qué es.net? Una arquitectura tecnológica para la creación y distribución de software como servicio. Servicio en cualquier plataforma, cliente en cualquier

Más detalles

TEMA 7. ARRAYS (LISTAS Y TABLAS).

TEMA 7. ARRAYS (LISTAS Y TABLAS). TEMA 7. ARRAYS (LISTAS Y TABLAS). En capítulos anteriores se han descrito las características de los tipos de datos básicos o simples (carácter, entero y coma flotante). Asimismo, se ha aprendido a definir

Más detalles

Ficha Técnica. Categoría. Contenido del Pack. Sinopsis. Programación. - 1 Manual Teórico - 1 Cuaderno de Ejercicios

Ficha Técnica. Categoría. Contenido del Pack. Sinopsis. Programación. - 1 Manual Teórico - 1 Cuaderno de Ejercicios Ficha Técnica Categoría Programación Contenido del Pack - 1 Manual Teórico - 1 Cuaderno de Ejercicios Sinopsis A través de este pack formativo el alumnado podrá conocer en profundidad el acceso a base

Más detalles

Diseño Basado en Componentes Curso 2008 / 09

Diseño Basado en Componentes Curso 2008 / 09 Ejemplo de Modelo Diseño Basado en Componentes Construcción de componentes utilizando VB.NET (Parte I) Ingeniería Informática Universidad Carlos III de Madrid Diseño Basado en Componentes Atributos miembro

Más detalles

Conversión entre Tipos

Conversión entre Tipos Conversión entre Tipos La conversión entre tipos permite comparar y copiar valores entre diferentes tipos. En esta lección describiremos como convertir un tipo dado en otro. Conversión en VB y Existen

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión X Colecciones... 6 Interfaz List... 15 ArrayList... 17 Recorrido Colecciones... 22 Iteradores en

Más detalles

Arreglos, colecciones

Arreglos, colecciones CARRERA PROFESIONAL TÉCNICA COMPUTACIÓN E INFORMÁTICA 3 GESTIÓN DE APLICACIONES PARA INTERNET Y PRODUCCIÓN MULTIMEDIA Arreglos, colecciones y cadenas Actividad 7 Unidad Didáctica: Ing. David Gil Meza Arreglos

Más detalles

Especialista TIC en Programación con Microsoft Visual C Sharp

Especialista TIC en Programación con Microsoft Visual C Sharp Especialista TIC en Programación con Microsoft Visual C Sharp Modalidad Online Horario Flexible Descuento Alumnos Duración 180 horas Nivel Superior Subvención Empresas Descripción Detallada A través del

Más detalles

AGRUPANDO OBJETOS (Parte-I)

AGRUPANDO OBJETOS (Parte-I) AGRUPANDO OBJETOS (Parte-I) Por Villarroel corina@memi.umss.edu.bo UMSS - Contenido Conceptos a saber: Colecciones Iteradores Ciclos Arreglos Contenido 1. Agrupando Objetos en colecciones de tamaño flexible

Más detalles

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;) Tags Fundamentos PHP La Sintaxis de PHP se deriva de muchos lenguajes de programación principalmente de C pero Perl también ha tenido mucha influencia en esta sintaxis Con las últimas incorporaciones agregadas,

Más detalles

Programación en Java. Instructor:

Programación en Java. Instructor: Instructor: Lección 6: Usando Colecciones 1. Collections 2. Iteración 3. La interfaz Collection 4. Set 5. List 6. Maps 7. La clase Collections Collections Muchos programas requieren de mantener un conjunto

Más detalles

CAPÍTULO 6 COMPOSICIÓN Y AGREGACIÓN

CAPÍTULO 6 COMPOSICIÓN Y AGREGACIÓN CAPÍTULO 6 COMPOSICIÓN Y AGREGACIÓN 2 http://www.itnuevolaredo.edu.mx/takeyas 1 Preguntas detonadoras Qué es y para qué sirve una clase parametrizada? Una clase parametrizada, Qué tipo de parámetro recibe?

Más detalles

Swift. Angela María Muñoz Medina Liseth Briceño Albarracín Nicolás Larrañaga Cifuentes

Swift. Angela María Muñoz Medina Liseth Briceño Albarracín Nicolás Larrañaga Cifuentes Swift Angela María Muñoz Medina Liseth Briceño Albarracín Nicolás Larrañaga Cifuentes Qué es Swift? El nuevo lenguaje para ios y OS X Es construido de lo mejor de C y objective C Presentado en el WWDC

Más detalles

Guía del Curso Especialista TIC en Programación con Microsoft Visual C Sharp 2010

Guía del Curso Especialista TIC en Programación con Microsoft Visual C Sharp 2010 Guía del Curso Especialista TIC en Programación con Microsoft Visual C Sharp 2010 Modalidad de realización del curso: Titulación: A distancia y Online Diploma acreditativo con las horas del curso OBJETIVOS

Más detalles

Programación II 2do cuatrimestre 2017

Programación II 2do cuatrimestre 2017 Tecnología Java El propósito de esta clase es aplicar los conceptos de TAD y Complejidad en Java. A continuación se mencionan algunas herramientas que nos ayudaran a aplicar estos y otros conceptos que

Más detalles

Java Collections List vs Set (I)

Java Collections List vs Set (I) Todos usamos el framework de colecciones de Java para manejar conjuntos de objetos.vamos a dedicar algunos artículos a abordar las colecciones más importantes. En este artículo vamos a introducir las Listas

Más detalles

Programación orientada a objetos

Programación orientada a objetos Programación orientada a objetos Capítulo 4 Agrupar objetos Tutor: Manuel Fernández Barcell Centro Asociado de Cádiz http://prof.mfbarcell.es 4.2 La Colección de objetos Muchas aplicaciones requieren

Más detalles

Especialista en Programación con Visual Basic net Avanzado

Especialista en Programación con Visual Basic net Avanzado Especialista en Programación con Visual Basic net Avanzado Modalidad Online Horario Flexible Descuento Alumnos Duración 180 horas Nivel Superior Subvención Empresas Descripción Detallada Formación Superior

Más detalles

AGRUPANDO OBJETOS (Parte-II)

AGRUPANDO OBJETOS (Parte-II) AGRUPANDO OBJETOS (Parte-II) Por Corina Flores Villarroel corina@memi.umss.edu.bo UMSS - El ciclo while Un ciclo while es similar en su estructura y proposito al ciclo for-each Contiene una cabecera y

Más detalles

ARRAYS O ARREGLOS. EJEMPLOS CON OBJETOS Y TIPOS PRIMITIVOS. CAMPO LENGTH. RESUMEN TIPOS DE COLECCIONES JAVA. (CU00669B)

ARRAYS O ARREGLOS. EJEMPLOS CON OBJETOS Y TIPOS PRIMITIVOS. CAMPO LENGTH. RESUMEN TIPOS DE COLECCIONES JAVA. (CU00669B) APRENDERAPROGRAMAR.COM ARRAYS O ARREGLOS. EJEMPLOS CON OBJETOS Y TIPOS PRIMITIVOS. CAMPO LENGTH. RESUMEN TIPOS DE COLECCIONES JAVA. (CU00669B) Sección: Cursos Categoría: Curso Aprender programación Java

Más detalles

Unidad II Tema 3: Tratamiento de arreglos y cadenas en Java

Unidad II Tema 3: Tratamiento de arreglos y cadenas en Java Unidad II Tema 3: Tratamiento de arreglos y cadenas en Java Profesor: Jorge Escalona / Tobías Bolívar Email: escaljorge@gmail.com / tobiasbolivar@gmail.com Web: http://estructuradatos.tripod.com 1 Qué

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión IX Colecciones... 6 Interfaz List... 15 ArrayList... 18 tostring( )... 23 Recorrido Colecciones...

Más detalles

Fundamentos de Programación

Fundamentos de Programación Fundamentos de Programación Colecciones de Objetos José A. Mañas Dpto. de Ingeniería de Sistemas Telemáticos http://www.dit.upm.es/~pepe/doc/fprg/ colecciones Cuando tenemos varios

Más detalles

Soluciones del Examen de Fundamentos de Computadores y Lenguajes

Soluciones del Examen de Fundamentos de Computadores y Lenguajes Soluciones del Examen de Fundamentos de Computadores y Lenguajes Cuestiones (5 cuestiones, 5 puntos en total) Examen Final. Junio 2003 1) Escribir un fragmento de programa que haga lo siguiente Declara

Más detalles

Introducción a Python Qué es Python?

Introducción a Python Qué es Python? Introducción a Python Qué es Python? Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible. Se trata de un lenguaje de programación

Más detalles

CAPITULO 4. AGRUPAR OBJETOS

CAPITULO 4. AGRUPAR OBJETOS CAPITULO 4. AGRUPAR OBJETOS 4.1 Agrupar objetos en colecciones de tamaño flexible Frecuentemente se necesitan agrupar los objetos en colecciones; muchas veces el número de elementos almacenados en la colección

Más detalles

Taller de Programación I. Tema 08: Estructuras Dinámicas de Datos en Java

Taller de Programación I. Tema 08: Estructuras Dinámicas de Datos en Java INACAP Universidad Tecnológica de Chile Sede Santiago Centro Taller de Programación I Curso Java J2SE Tema 08: Estructuras Dinámicas de Datos en Java Ing. Manuel López Ramos Parte I Qué son las estructuras

Más detalles

Estructuras de Datos Clase 7 Listas e Iteradores (segunda parte)

Estructuras de Datos Clase 7 Listas e Iteradores (segunda parte) Estructuras de Datos Clase 7 Listas e Iteradores (segunda parte) Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía

Más detalles

TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero

TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero TEMA 7: Ficheros 7.1.-Concepto de fichero Todas las estructuras de datos que hemos visto hasta ahora utilizan memoria principal. Esto tiene dos limitaciones importantes: 1. Los datos desaparecen cuando

Más detalles

Técnico Superior en Programación con Microsoft Visual C# 2010

Técnico Superior en Programación con Microsoft Visual C# 2010 Técnico Superior en Programación con Microsoft Visual C# Técnico Superior en Programación con Microsoft Visual C# Duración: 80 horas Precio: 420 euros. Modalidad: A distancia Metodología: El Curso será

Más detalles

Fundamentos de Informática

Fundamentos de Informática Fundamentos de Informática Grados en Ingeniería Tutor: Antonio Serna UNED C.A. Illes Balears Sesión 03 Contenidos Recopilación de dudas y trabajos Composición de objetos (ArrayLists) Ejercicios: encuentra

Más detalles

Programación de sistemas Listas enlazadas

Programación de sistemas Listas enlazadas Programación de sistemas Listas enlazadas Departamento de Ingeniería Telemática 1 Contenidos *** Introducción a los genéricos Estructuras de datos Listas enlazadas La clase Node La clase LinkedList Ventajas

Más detalles

Apuntadores en C y C++

Apuntadores en C y C++ Apuntadores en C y C++ Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Prof. Marcos A. Gil T. 8 de diciembre de 2004 1. Introducción Los apuntadores en C y C++ son una herramienta

Más detalles

[Column(Name = "FirstName", DbType = "varchar(10)")] public string FirstName { get; set; }

[Column(Name = FirstName, DbType = varchar(10))] public string FirstName { get; set; } Atributos Un atributo-un término muy sobre usado-en C# es un mecanismo que define palabras como declaraciones descriptivas, para anotar a elementos de un programa como lo son tipos, campos, métodos, y

Más detalles

Programación Tema 9: Bibliotecas y Colecciones. Programación DIT-UPM

Programación Tema 9: Bibliotecas y Colecciones. Programación DIT-UPM Programación Tema 9: Bibliotecas y Colecciones 1 Contenidos l Bibliotecas l Concepto de colección l Definición y uso de lista (List, ArrayList) l Recorridos sobre colecciones l Conjunto (Set, HashSet)

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java II... 6 Estructuras de control... 7 Estructuras de selección... 8 Sentencia if... 9 Sentencia if - else... 12 Operador condicional...

Más detalles

Programación de Objetos.Net C# LDP3501-2011 / DUOC-AV

Programación de Objetos.Net C# LDP3501-2011 / DUOC-AV En esta guía: Programación de Objetos.Net C# LDP3501-2011 / DUOC-AV Colecciones de Negocio... 1 Creación de una colección personalizada... 2 Introducción a LINQ (Language Integrated Query)... 4 Las tres

Más detalles

Tema 05: Tablas hash. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

Tema 05: Tablas hash. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom Tema 05: Tablas hash M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Función

Más detalles

Ejercicio 1. Ejercicio 2

Ejercicio 1. Ejercicio 2 Todos los ejercicios incluyen una parte opcional de mayor dificultad, indicada con una serie de asteriscos en función del grado de dificultad. Ejercicio 1 Este ejercicio servirá para practicar la declaración

Más detalles

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota: Nombre y apellidos: Nota: NOTA FINAL: Nota Practica (1 punto) + Nota Examen (9 punto) Es indispensable aprobar el examen (4,5 puntos) para aprobar la asignatura (5 puntos) La práctica es opcional Duración:

Más detalles

Programación II Tipos Abstractos de Datos(TAD)

Programación II Tipos Abstractos de Datos(TAD) Programación II Tipos Abstractos de Datos(TAD) Definición Un Tipo Abstracto de Datos es un conjunto de valores y de operaciones definidos mediante una especificación independiente de cualquier representación.

Más detalles

CAPÍTULO 5 DESARROLLO DEL SISTEMA

CAPÍTULO 5 DESARROLLO DEL SISTEMA DESARROLLO DEL SISTEMA CAPÍTULO 5 DESARROLLO DEL SISTEMA 5.1 IMPLEMENTACIÓN DE BASE DE DATOS La implementación de la base de datos se realizó usando el manejador de Bases de datos Microsoft SQL Server

Más detalles

Interfaz IComparable. Contenido

Interfaz IComparable. Contenido Interfaz IComparable [Descripción general] Hay ocasiones en las que es necesario saber si un objeto es mayor, menor, o igual que otro. Mejor dicho, cuando el VALOR del objeto es mayor, igual o menor que

Más detalles

STRINGBUFFER, STRINGBUILDER JAVA. EJEMPLO. DIFERENCIAS ENTRE CLASES. CRITERIOS PARA ELEGIR. MÉTODOS. (CU00914C)

STRINGBUFFER, STRINGBUILDER JAVA. EJEMPLO. DIFERENCIAS ENTRE CLASES. CRITERIOS PARA ELEGIR. MÉTODOS. (CU00914C) APRENDERAPROGRAMAR.COM STRINGBUFFER, STRINGBUILDER JAVA. EJEMPLO. DIFERENCIAS ENTRE CLASES. CRITERIOS PARA ELEGIR. MÉTODOS. (CU00914C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado

Más detalles

1. Algunas clases del paquete java.util

1. Algunas clases del paquete java.util Objetivos Modelización de un problema mediante clases. Utilización de la composición. Creación de objetos y envío de mensajes. Clases de java.util Índice 1. Algunas clases del paquete java.util 1 1.1.

Más detalles

INFORMATICA II PRIMER PARCIAL

INFORMATICA II PRIMER PARCIAL Grupo 1 INFORMATICA II PRIMER PARCIAL Hacer un programa en C o C++ que realice lo siguiente: a. Almacenar en un archivo binario 100 juegos de valores compuestos por un valor entero, un número real y una

Más detalles

Tema 6: Clases. Índice

Tema 6: Clases. Índice Tema 6: Clases Antonio J. Sierra Índice 1. Fundamentos. 2. Declaración de objetos. 3. Asignación de objetos a variables referencia. 4. Métodos. 5. Constructores. 6. this. 7. Recogida de basura. 8. Modelado

Más detalles

Resumen Clase Anterior Arreglos Unidimensionales Ejemplos Ejercicio Arreglos Multidimensionales. ING1310 Introducción a la Computación.

Resumen Clase Anterior Arreglos Unidimensionales Ejemplos Ejercicio Arreglos Multidimensionales. ING1310 Introducción a la Computación. ING1310 Introducción a la Computación Arreglos Arreglos Multidimensionales Carlos Reveco creveco@dcc.uchile.cl careveco@miuandes.cl Facultad de Ingeniería/Universidad de los Andes/Chile Rev : 213 C.Reveco

Más detalles

Programming with C# DESCRIPCION MODULOS DE CAPACITACION. Sistemas Informáticos del Valle Módulo 1: Revisión de la sintaxis de C#

Programming with C# DESCRIPCION MODULOS DE CAPACITACION. Sistemas Informáticos del Valle   Módulo 1: Revisión de la sintaxis de C# Programming with C# DESCRIPCION MODULOS DE CAPACITACION Módulo 1: Revisión de la sintaxis de C# Este módulo repasa la sintaxis del núcleo y las características del lenguaje de programación C#. También

Más detalles

Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño

Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Clase adicional 9 Temas Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Listas enlazadas Previamente en este curso, ya habrá trabajado con dos de las estructuras de datos

Más detalles

Programación orientada a objetos

Programación orientada a objetos Repaso Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual smuelas@fi.upm.es! Herencia! Superclase/subclase! super! Modificador protected! Redefinicion de métodos!

Más detalles

Asignación Dinámica de Memoria. Agustín J. González Versión original de Kip Irvine ELO 326: Seminario II 2do. Sem. 2001

Asignación Dinámica de Memoria. Agustín J. González Versión original de Kip Irvine ELO 326: Seminario II 2do. Sem. 2001 Asignación Dinámica de Memoria Agustín J. González Versión original de Kip Irvine ELO 326: Seminario II 2do. Sem. 2001 1 Asignación Dinámica Asignación Dinámica es la creación de un objeto mientras el

Más detalles

INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA con BlueJ

INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA con BlueJ INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA con BlueJ Tema 3 Clases y Objetos Tema 4 Comunicación entre objetos. Algoritmos Tema 5 Herencia y abstracción de datos Tema 6 Diseño de clases TEMA 5: Herencia

Más detalles

CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS

CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS Capítulo 3 Estructuras de datos estáticas 1/37 1. INTRODUCCIÓN Las estructuras de datos se utilizan, generalmente, para procesar una colección de valores que están

Más detalles

Para crear un arreglo de cualquier tipo de elementos la sintaxis es:

Para crear un arreglo de cualquier tipo de elementos la sintaxis es: Arreglos (arrays) Un arreglo es una estructura de datos homogénea o conjunto de elementos del mismo tipo. En Java se pueden manejar arreglos de elementos de tipo primitivo (8 tipos primitivos hay en Java)

Más detalles

TEMA 8. ESTRUCTURAS Y UNIONES.

TEMA 8. ESTRUCTURAS Y UNIONES. TEMA 8. ESTRUCTURAS Y UNIONES. Este capítulo examina estructuras, uniones, enumeraciones y s definidos por el usuario que permite a un programador crear nuevos s de datos. La capacidad para crear nuevos

Más detalles

Curso: Programación con Microsoft Visual C SHARP 2010.

Curso: Programación con Microsoft Visual C SHARP 2010. Curso: Programación con Microsoft Visual C SHARP 2010. Código: 1387 Familia Profesional: Programación. Acreditación: Formación reconocida a través de vías no formales Modalidad: Distancia Duración: 100

Más detalles

TIPO Y MÉTODO ITERATOR. ERROR JAVA.UTIL.CONCURRENT MODIFICATIONEXCEPTION. RESUMEN DE TIPOS DE BUCLES EN JAVA. (CU00667B)

TIPO Y MÉTODO ITERATOR. ERROR JAVA.UTIL.CONCURRENT MODIFICATIONEXCEPTION. RESUMEN DE TIPOS DE BUCLES EN JAVA. (CU00667B) APRENDERAPROGRAMAR.COM TIPO Y MÉTODO ITERATOR. ERROR JAVA.UTIL.CONCURRENT MODIFICATIONEXCEPTION. RESUMEN DE TIPOS DE BUCLES EN JAVA. (CU00667B) Sección: Cursos Categoría: Curso Aprender programación Java

Más detalles

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3 Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Definición de tipo genérico Hablamos de un tipo genérico cuando el tipo en cuestión depende

Más detalles

Tema: Grafos en C#. Objetivos Específicos. Materiales y Equipo. Introducción Teórica. Programación IV. Guía 7

Tema: Grafos en C#. Objetivos Específicos. Materiales y Equipo. Introducción Teórica. Programación IV. Guía 7 Programación IV. Guía 7 1 Tema: Grafos en C#. Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Objetivos Específicos Definir el concepto de Grafo. A partir de una clase agregar la

Más detalles

Segundo Parcial de Programación 2 7 de junio de 2017

Segundo Parcial de Programación 2 7 de junio de 2017 Instituto de Computación. Facultad de Ingeniería. Universidad de la República Segundo Parcial de Programación 2 7 de junio de 2017 Problema 1 (30 puntos) Considere un TAD T que permita almacenar a lo sumo

Más detalles

Estructura de Datos Unidad 1: Repaso del Lenguaje Java

Estructura de Datos Unidad 1: Repaso del Lenguaje Java Estructura de Datos Unidad 1: Repaso del Lenguaje Java Introducción Java es un lenguaje de programación orientado a objetos, desarrollado por Sun Microsystems a principios de 1991, con el que se van a

Más detalles

Práctica : Creación y uso de métodos

Práctica : Creación y uso de métodos Métodos y Parámetros 1 Práctica : Creación y uso de métodos Objetivos Al final de esta práctica, usted será capaz de: Crear y hacer llamadas a métodos con y sin parámetros. Utilizar distintos mecanismos

Más detalles

Además esta misma estructura de menú la reutilizaremos en las siguientes partes de la practica

Además esta misma estructura de menú la reutilizaremos en las siguientes partes de la practica Jose Luis Garrido Sanchez DNI 28777762R MEMORIA DE PRACTICA 1ªparte: creación de una clase Nota Para llevar a cabo esta primera parte se crea una clase Notas. La clase Notas tiene tres campos: -Titulo.

Más detalles

PERSISTE Y CAMPUS VIRTUAL

PERSISTE Y CAMPUS VIRTUAL Introducción Los nuevos módulos de campus virtual se están desarrollando con.net y tienen que convivir con los antiguos, que están en asp. Para que funcionen se tienen que mantener las variables de sesión

Más detalles

Hashing (Funciones de Dispersión)

Hashing (Funciones de Dispersión) Hashing características Hashing (Funciones de Dispersión) Mauricio Solar Lorna Figueroa No necesita almacenamiento adicional (índice). Facilita la inserción y eliminación rápida de registros. Encuentra

Más detalles

ARREGLOS CLASE VECTOR. Ing. Marina Cipolletti

ARREGLOS CLASE VECTOR. Ing. Marina Cipolletti ARREGLOS CLASE VECTOR Ing. Marina Cipolletti QUÉ ES UN ARREGLO? Es una estructura de datos. Almacena datos del mismo tipo en forma indexada. El tamaño se declara en un primer momento y no cambia en tiempo

Más detalles

Unidad Didáctica 6. Tipos List y Set con tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos. Versión 1.0.

Unidad Didáctica 6. Tipos List y Set con tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos. Versión 1.0. Unidad Didáctica 6 Tipos List y Set con tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.1 Índice Estructuras de datos predefinidas en Java (Colecciones)

Más detalles

INTERFACE ITERATOR DEL API JAVA. MÉTODO REMOVE PARA BORRAR OBJETOS EN COLECCIONES. EJERCICIOS Y EJEMPLO RESUELTO. (CU00919C)

INTERFACE ITERATOR DEL API JAVA. MÉTODO REMOVE PARA BORRAR OBJETOS EN COLECCIONES. EJERCICIOS Y EJEMPLO RESUELTO. (CU00919C) APRENDERAPROGRAMAR.COM INTERFACE ITERATOR DEL API JAVA. MÉTODO REMOVE PARA BORRAR OBJETOS EN COLECCIONES. EJERCICIOS Y EJEMPLO RESUELTO. (CU00919C) Sección: Cursos Categoría: Lenguaje de programación Java

Más detalles

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C Laboratorio de Arquitectura de Redes Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones con punteros Operaciones

Más detalles

Tipos Recursivos de Datos

Tipos Recursivos de Datos 1/1 Tipos Recursivos de Datos Josefina Sierra Santibáñez 27 de noviembre de 2016 2/1 Introducción La recursividad no sólo se puede aplicar a la definición de procedimientos (i.e. funciones o acciones),

Más detalles

Tema 3: Herencia en C# Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Tema 3: Herencia en C# Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Tema 3: Herencia en C# Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Herencia. Polimorfismo y ligadura. Clase object. Casting. Compatibilidad de tipos. Clases abstractas.

Más detalles

GENERACIÓN DE CÓDIGO ORIENTADO A OBJETOS

GENERACIÓN DE CÓDIGO ORIENTADO A OBJETOS GENERACIÓN DE CÓDIGO ORIENTADO A OBJETOS A.- ASPECTOS FUNDAMENTALES DEL CÓDIGO ORIENTADO A OBJETOS MÓDULOS DE CÓDIGO: El código en Visual Basic se almacena en módulos. Hay tres tipos de módulos: de formulario,

Más detalles

Bloque II. Elementos del lenguaje de programación Java

Bloque II. Elementos del lenguaje de programación Java Bloque II. Elementos del lenguaje de programación Java 1.Introducción a los lenguajes de programación 2. Estructura de un programa 3. Datos y expresiones simples 4. Instrucciones de control 5. Entrada/salida

Más detalles

Tema: Arreglos en C#.

Tema: Arreglos en C#. Programación1, Guia#7 1 Tema: Arreglos en C#. Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Objetivos Introducir al estudiante a los conceptos de estructura de datos.

Más detalles

Unidad IV. Aplicaciones sobre Base de Datos

Unidad IV. Aplicaciones sobre Base de Datos Clase:013 1 Unidad IV Aplicaciones sobre Base de Datos 2 Agenda PROGRAMA DE MANIPULACION DE BASE ANDROID SQLITE SQLITE OpenHelper SQLITE Database Cursor Ejemplos Agregar controles según campo Usar query

Más detalles

A3F. Objetos (uso) Carlos Fontela

A3F. Objetos (uso) Carlos Fontela Objetos (uso) Carlos Fontela cfontela@fi.uba.ar Temario Objetos y mensajes Objetos y clases Estado, comportamiento, identidad Paquetes Historia hacia la POO POO vs. procedural 2c2009 2 Operando sobre objetos

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión III La Sintaxis de Java II... 6 Estructuras de Control... 7 Estructuras de Selección... 8 Sentencia

Más detalles

Especialista TIC en Programación con Microsoft Visual Basic 2010 (Online)

Especialista TIC en Programación con Microsoft Visual Basic 2010 (Online) Especialista TIC en Programación con Microsoft Visual Basic 2010 (Online) TITULACIÓN DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES Especialista TIC en Programación

Más detalles

Sesión No. 10. Contextualización INFORMÁTICA 1. Nombre: Gestor de Base de Datos (Access)

Sesión No. 10. Contextualización INFORMÁTICA 1. Nombre: Gestor de Base de Datos (Access) INFORMÁTICA INFORMÁTICA 1 Sesión No. 10 Nombre: Gestor de Base de Datos (Access) Contextualización Microsoft Access es un sistema de gestión de bases de datos, creado para uso personal y de pequeñas organizaciones,

Más detalles

Generics y Visual Basic.NET

Generics y Visual Basic.NET Por Guillermo Guille Som Visual Basic MVP desde 1997 www.elguille.info Generics y Visual Basic.NET Es mucho lo que se ha escrito (y seguramente se seguirá escribiendo) sobre esta nueva característica de

Más detalles

! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes

! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes Introducción Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual smuelas@fi.upm.es! Qué es la POO?! Un paradigma de programación! Un paradigma es una forma de afrontar

Más detalles

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2 Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2 Contenidos: 1. Definición de clases 2. Implementación de los métodos 3. Constructores y destructores 4. Objetos

Más detalles

Tipos abstractos de datos (TAD)

Tipos abstractos de datos (TAD) Capítulo 2 Tipos abstractos de datos (TAD) Objetivo: Introducir al alumno las estructuras de datos mediante el concepto de tipo abstracto de datos. En este capítulo se presenta una primera implementación

Más detalles

Colecciones. Nadjet Bouayad-Agha Programación 2007

Colecciones. Nadjet Bouayad-Agha Programación 2007 Colecciones Nadjet Bouayad-Agha Programación 2007 ArrayList Un ArrayList es un array dinámico. No tiene restricciones de capacidad. Su tamaño se ajusta de forma dinámica. Constructor por defecto: new ArrayList().

Más detalles

Estructura de datos y de la información Boletín de problemas - Tema 10

Estructura de datos y de la información Boletín de problemas - Tema 10 Estructura de datos y de la información Boletín de problemas - Tema 10 1. En el caso de que sea posible, dar un ejemplo de los siguientes puntos. Si no, explicar por qué no lo es. Considerar un valor genérico

Más detalles

Programación TADs Colecciones Conjuntos, Diccionarios y Tablas

Programación TADs Colecciones Conjuntos, Diccionarios y Tablas Programación 2 8 - TADs Colecciones Conjuntos, Diccionarios y Tablas 1 El TAD SET (Conjunto) En el diseño de algoritmos, la noción de conjunto es usada como base para la formulación de tipos de datos abstractos

Más detalles

media = ( temp0 + temp1 + temp2 + temp3 + temp temp23 ) / 24; printf( "\nla temperatura media es %f\n", media );

media = ( temp0 + temp1 + temp2 + temp3 + temp temp23 ) / 24; printf( \nla temperatura media es %f\n, media ); Arrays en el lenguaje C Introducción Una posible definición de array sería: Un conjunto de datos del mismo tipo, identificados por el mismo nombre, y que se pueden distinguir mediante un número de índice.

Más detalles

PROGRAMACION ORIENTADA A OBJETOS EN C++

PROGRAMACION ORIENTADA A OBJETOS EN C++ PROGRAMACION ORIENTADA A OBJETOS EN C++ 1- INTRODUCCIÓN El lenguaje C++ representa el resultado de los esfuerzos realizados para proporcionar las ventajas de la programación Orientada a Objetos a un lenguaje

Más detalles

Diseño Basado en Componentes Curso 2008 / 09

Diseño Basado en Componentes Curso 2008 / 09 Asociación 1 a * (I) Implementación de Asociaciones en VB.NET Se implementa mediante una clase-colección para el lado *, y una propiedad en el lado 1. Cambiar algo en un extremo significa cambiar en el

Más detalles

En Java, un arreglo es un grupo de variables (llamados elementos o componentes) que contienen valores, todos del mismo tipo.

En Java, un arreglo es un grupo de variables (llamados elementos o componentes) que contienen valores, todos del mismo tipo. Arreglos Los arreglos son estructuras de datos que consisten de elementos de datos relacionados, del mismo tipo. Los arreglos son entidades son entidades de longitud fija: conservan la misma longitud una

Más detalles

Índice PRÓLOGO... XVII CAPÍTULO 1. FUNDAMENTOS DE JAVA Características de Java Origen y evolución... 1

Índice PRÓLOGO... XVII CAPÍTULO 1. FUNDAMENTOS DE JAVA Características de Java Origen y evolución... 1 Índice PRÓLOGO... XVII CAPÍTULO 1. FUNDAMENTOS DE JAVA... 1 Características de Java... 1 Origen y evolución... 1 Principales características de Java... 2 Compilación de un programa Java... 2 Java Virtual

Más detalles

Modelamiento y Diseño de Base de Datos

Modelamiento y Diseño de Base de Datos Modelamiento y Diseño de Base de Datos Procedimientos almacenados. Objetivos: Crear procedimientos almacenados para ser usados en el desarrollo de software. Introducción Uno de los procedimientos más usados

Más detalles

ANEXO II: Resumen de uso de colecciones

ANEXO II: Resumen de uso de colecciones ANEXO II: Resumen de uso de colecciones Este apartado muestra un resumen de uso de las colecciones. El estudio de las colecciones será completado en el tema 4 de la asignatura y en el ejercicio propuesto

Más detalles