Sesión 04 - Arrays y Colecciones

19
Desarrollo de aplicaciones .NET Eduardo Rivera Alva - MCTS.Net ([email protected]) Desarrollo de Aplicaciones Capítulo 04 Arrays y Colecciones

description

Sesión 04 del Curso Desarrollo de Aplicaciones .NET (2007-II) - Universidad San Ignacio de Loyola (USIL)

Transcript of Sesión 04 - Arrays y Colecciones

Page 1: Sesión 04 - Arrays y Colecciones

Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

Desarrollo de Aplicaciones

Capítulo 04

Arrays y Colecciones

Page 2: Sesión 04 - Arrays y Colecciones

Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

Agenda

• Repaso sesión anterior.

• Arrays– Definiciones

– Tipos de arrays

– Declaración e instanciación

– Inicialización

– Iteración sobre arrays

• Colecciones– Introducción

– Colecciones comunes

– ArrayList

• Que veremos la próxima sesión?

Page 3: Sesión 04 - Arrays y Colecciones

Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

Repaso sesión anterior

• Control de flujo

– Branching no-condicional

– Branching condicional

– Bucles

• Excepciones

• Ver diapositivas previas.

Page 4: Sesión 04 - Arrays y Colecciones

Arrays

Desarrollo de aplicaciones .NET

Eduardo Rivera Alva - MCTS.Net ([email protected])

Referencias

1. Learning C# 2005. Caps. 10 (Arrays), 14 (Generics and Collections)

2. Csharp Language Specification

3. MSDN C# Reference (http://msdn2.microsoft.com/en-us/library/618ayhy6(VS.80).aspx)

4. MSDN C# Programming Guide (http://msdn2.microsoft.com/en-

us/library/67ef8sbd(VS.80).aspx)

Page 5: Sesión 04 - Arrays y Colecciones

Arrays

• Son una colección de objetos del mismo tipo.

– Integers, Strings, Clase Persona, etc…

• Existen de una dimensión y multi-dimensionales.

• Se pueden tratar como una entidad simple (mediante un nombre).

• Empiezan con el elemento cero (zero-based).

• Deriva de la clase System.Array, por lo tanto es un tipo por referencia.

• Se almacenan en forma contínua (uno a continuación del otro).

• Tienen un tamaño definido. C# no soporta arrays dinámicos.

Desarrollo de aplicaciones .NET

Eduardo Rivera Alva - MCTS.Net ([email protected])

Page 6: Sesión 04 - Arrays y Colecciones

Arrays

• Tipos de Arrays:

Desarrollo de aplicaciones .NET

Eduardo Rivera Alva - MCTS.Net ([email protected])

Page 7: Sesión 04 - Arrays y Colecciones

Arrays

• Estructura de un array

Desarrollo de aplicaciones .NET

Eduardo Rivera Alva - MCTS.Net ([email protected])

Page 8: Sesión 04 - Arrays y Colecciones

Arrays

• Se declaran y crean como objetos comunes.

• Declaración e instanciación:

Declarar un arreglo de enteros:

int[] array_de_enteros;

Instanciar e inicializar un array de 5 enteros con el valor cero:

array_de_enteros = new int[5];

O también:

int[] array_de_enteros = new int[5];

Desarrollo de aplicaciones .NET

Eduardo Rivera Alva - MCTS.Net ([email protected])

type[] array_name;

array_name = new type[n];

Page 9: Sesión 04 - Arrays y Colecciones

Arrays

• Valores por defecto:

– Al crear un array de tipos por valor: los elementos se

inicializan en cero.

myIntArray = new int[5]; // 5 enteros con el valor cero

– Al inicializar un array de tipos por referencia: los

elementos se inicializan en null.

Button[] myButtonArray = new Button[3]; // 3 botones con el valor

null.

Desarrollo de aplicaciones .NET

Eduardo Rivera Alva - MCTS.Net ([email protected])

Page 10: Sesión 04 - Arrays y Colecciones

Arrays

• Posicionamiento en memoria

Desarrollo de aplicaciones .NET

Eduardo Rivera Alva - MCTS.Net ([email protected])

Page 11: Sesión 04 - Arrays y Colecciones

Arrays

• Inicialización de los elementos de un array:

int[] pins = new int[4] { 9, 3, 7, 2 };

o

int[] pins = { 9, 3, 7, 2 };

Person[] arreglo = new Person[] { new Person(),

newPerson() };

o

Person[] arreglo = { new Person(), new Person() }

Desarrollo de aplicaciones .NET

Eduardo Rivera Alva - MCTS.Net ([email protected])

Page 12: Sesión 04 - Arrays y Colecciones

Arrays

• Iteración sobre un array:

Desarrollo de aplicaciones .NET

Eduardo Rivera Alva - MCTS.Net ([email protected])

int[] pins = { 9, 3, 7, 2 };

for (int index = 0; index < pins.Length; index++)

{

int pin = pins[index];

Console.WriteLine(pin);

}

int[] pins = { 9, 3, 7, 2 };

foreach (int pin in pins)

{

Console.WriteLine(pin);

}

Page 13: Sesión 04 - Arrays y Colecciones

Colecciones

Desarrollo de aplicaciones .NET

Eduardo Rivera Alva - MCTS.Net ([email protected])

Referencias

1. Learning C# 2005. Caps 14 (Generics and Collections).

Page 14: Sesión 04 - Arrays y Colecciones

Colecciones

• Son listas de datos que no se acceden necesariamente por

un índice.

• Proveen funcionalidad adicional a los clásicos Arrays.

• Están diseñadas para manejar listas dinámicas de objetos.

• Pueden aumentar o disminuir su tamaño automáticamente.

• Tienen un mejor performance en el redimensionamiento que

Array.Resize.

• Almacenan sus elementos, como objetos.

• Hay varios tipos de colecciones con fines específicos.

Desarrollo de aplicaciones .NET

Eduardo Rivera Alva - MCTS.Net ([email protected])

Page 15: Sesión 04 - Arrays y Colecciones

Colecciones

• Colecciones Comunes del Framework

– Arrays

– ArrayList y List

– Hashtables y Dictionary

– SortedList y SortedDictionary

– Queue

– Stack

Desarrollo de aplicaciones .NET

Eduardo Rivera Alva - MCTS.Net ([email protected])

Page 16: Sesión 04 - Arrays y Colecciones

Colecciones

• ArrayList:

– Es la más parecida a un Array, y es una versión

más sofisticada.

– Es totalmente dinámica al manejar su contenido.

– Tiene mejor performance para el

redimensionado.

– Se le pueden agregar o remover elementos,

invocando a sus métodos.

– Es la versión no-genérica de List<T>.

Desarrollo de aplicaciones .NET

Eduardo Rivera Alva - MCTS.Net ([email protected])

Page 17: Sesión 04 - Arrays y Colecciones

Colecciones

• ArrayList:

Desarrollo de aplicaciones .NET

Eduardo Rivera Alva - MCTS.Net ([email protected])

public class Employee

{

private int empID;

public Employee( int empID )

{

this.empID = empID;

}

public override string ToString( )

{

return empID.ToString( );

}

public int EmpID

{

get

{

return empID;

}

set

{

empID = value;

}

}

}

public class Tester

{

static void Main( )

{

List<Employee> empList = new List<Employee>( );

List<int> intList = new List<int>( );

// populate the List

for ( int i = 0; i < 5; i++ )

{

empList.Add( new Employee( i + 100 ) );

intList.Add( i * 5 );

}

// print all the contents

for ( int i = 0; i < intList.Count; i++ )

{

Console.Write( "{0} ", intList[i].ToString( ) );

}

Console.WriteLine( "\n" );

// print all the contents of the Employee List

for ( int i = 0; i < empList.Count; i++ )

{

Console.Write( "{0} ", empList[i].ToString( ) );

}

Console.WriteLine( "\n" );

Console.WriteLine( "empList.Capacity: {0}", empList.Capacity );

}

}

Page 18: Sesión 04 - Arrays y Colecciones

Que veremos la próxima sesión?

• ADO.Net 2.0

Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

Page 19: Sesión 04 - Arrays y Colecciones

Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

Fin de la sesión

• Dudas, comentarios, sugerencias?

• Comunicarse por email a [email protected]

• Gracias por su atención !!