ARREGLOS Y COLECCIONES EN JAVA

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

Download "ARREGLOS Y COLECCIONES EN JAVA"

Transcripción

1 ESTRUCTURA DE CONTENIDOS 1. PARA QUÉ USAR ARREGLOS? 1.1 Enunciado del Problema. 1.2 Análisis del Problema. 1.3 Solución al problema con el uso de arreglos. 2. DECLARACIÓN, CREACIÓN Y USO DE ARREGLOS 2.1 Sintaxis para declarar y crear un arreglo. 2.2 Recorrido de un arreglo. 2.3 Arreglos de Objetos. 3. COLECCIONES Y GENERICS 3.1 Tipos de Colecciones y Características. 3.2 Uso de la colección ArrayList. 3.3 Uso de la colección LinkedList. 3.4 Uso de la colección HashSet. 3.5 Uso de la colección TreeSet. 3.6 Los generics y las colecciones. 1

2 MAPA CONCEPTUAL 2

3 INTRODUCCIÓN Frecuentemente las aplicaciones informáticas requieren manejar conjuntos de datos comunes en memoria para su posterior consulta o procesamiento, por ejemplo los nombres de los empleados de una empresa o los precios de los artículos de un almacén. Este almacenamiento de datos en memoria se puede llevar a cabo a través de estructuras de programación como los arreglos o las colecciones. El uso de arreglos y colecciones es fundamental para la solución de problemas a través de aplicaciones de software y este es el principal propósito del presente Objeto de Aprendizaje. 1. PARA QUÉ USAR ARREGLOS? Los arreglos son estructuras de almacenamiento en memoria que permiten llevar a cabo la lectura, el procesamiento o consulta de conjuntos de datos dentro de una aplicación de software. Este recurso es de uso común entre los desarrolladores de software, pero para entender mejor su utilidad, a continuación se presenta un enunciado de un problema donde se requiere el uso de arreglos. 1.1 Enunciado del problema. Determinar la cantidad de empleados de una empresa que ganan un salario superior al salario promedio de todos los empleados de la empresa. 3

4 1.2 Análisis del problema. Fácilmente se puede deducir que el problema se debe descomponer en 2 partes: 1 2 Se debe determinar cuántos empleados ganan un salario superior al salario promedio anteriormente calculado. Se requiere calcular el salario promedio de los empleados de la empresa import javax.swing.joptionpane; public class Programa1 //1. Calcular el salario promedio de los empleados double sumsalario=0,salario,salariopromedio; int totalempleados, cantemplsalsuperior=0; totalempleados=integer.parseint(joptionpane.showinputdialog(null,"ingrese cantidad de empleados")); for(int i=1;i<=totalempleados;i++) salario=double.parsedouble(joptionpane.showinputdialog(null,"ingrese salario del empleado")); sumsalario=sumsalario+salario; salariopromedio=sumsalario/totalempleados; //2. Determinar cuántos empleados ganan un salario superior al promedio for(int i=1;i<=totalempleados;i++) //???????????????? El programa anterior calcula correctamente el salario promedio de todos los empleados de la empresa (punto 1 del análisis), pero cómo determinar cuántos de esos empleados ganan un salario superior al salario promedio?(punto 2 del análisis) 4

5 Primer Intento Se debe determinar cuántos empleados ganan un salario superior al 1 salario promedio anteriormente import javax.swing.joptionpane; public class Programa1A //1. Calcular el salario promedio de los empleados double sumsalario=0,salario=0,salariopromedio; int totalempleados, cantemplsalsuperior=0; totalempleados=integer.parseint(joptionpane.showinputdialog(null,"ingrese cantidad de empleados")); for(int i=1;i<=totalempleados;i++) salario=double.parsedouble(joptionpane.showinputdialog(null,"ingrese salario del empleado")); sumsalario=sumsalario+salario; x salariopromedio=sumsalario/totalempleados; //2. Determinar cuántos empleados ganan un salario superior al promedio for(int i=1;i<=totalempleados;i++) if(salario > salariopromedio) cantemplsalsuperior++; La solución propuesta es equivocada porque el salario de cada empleado es leído en la misma variable salario en la línea 14 del programa, por lo tanto, en la línea 22 del programa, el valor que se tiene en la variable salario es el salario del último empleado solamente, los salarios de los empleados anteriores se han perdido. Una pequeña prueba de escritorio muestra como el valor de la variable salario es actualizado cada vez que se lee un nuevo salario. i Salario

6 Segundo Intento Se requiere calcular el salario promedio 2 de los empleados de la empresa import javax.swing.joptionpane; public class Programa1B //1. Calcular el salario promedio de los empleados double sumsalario=0,salario,salariopromedio; int totalempleados, cantemplsalsuperior=0; totalempleados=integer.parseint(joptionpane.showinputdialog(null,"ingrese cantidad de empleados")); for(int i=1;i<=totalempleados;i++) salario=double.parsedouble(joptionpane.showinputdialog(null,"ingrese salario del empleado")); sumsalario=sumsalario+salario; salariopromedio=sumsalario/totalempleados; //2. Determinar cuántos empleados ganan un salario superior al promedio for(int i=1;i<=totalempleados;i++) x salario=double.parsedouble(joptionpane.showinputdialog(null,"ingrese salario del empleado")); if(salario > salariopromedio) cantemplsalsuperior++; La segunda solución propuesta incluye en la línea 22 un nuevo código que permite leer nuevamente el salario de cada empleado. Esta propuesta es equivocada porque el salario de cada empleado ya había sido leído en la línea 14 del programa. Esta solución además del doble trabajo que significa leer en 2 oportunidades el salario de cada empleado, es insegura, ya que al volver a leer el salario de cada empleado, el usuario podría ingresar salarios diferentes a los usados para calcular el salario promedio. 56

7 1.3 SOLUCIÓN AL PROBLEMA CON EL USO DE ARREGLOS. La segunda solución propuesta incluye en la línea 22 un nuevo código que permite leer nuevamente el salario de cada empleado. Esta propuesta es equivocada porque el salario de cada empleado ya había sido leído en la línea 14 del programa. Esta solución además del doble trabajo que significa leer en 2 oportunidades el salario de cada empleado, es insegura, ya que al volver a leer el salario de cada empleado, el usuario podría ingresar salarios diferentes a los usados para calcular el salario promedio. i Salario SalarioPromedio cantemplsalsup Los arreglos permiten realizar el almacenamiento de un conjunto de valores en posiciones de memoria diferentes para que cada valor pueda ser accedido en cualquier momento durante la ejecución de un programa. La solución al problema consiste en definir un arreglo para almacenar los diferentes salarios de los empleados de la empresa, a partir de ellos calcular el salario promedio y posteriormente acceder al arreglo de salarios para determinar cuántos de ellos son superiores al salario promedio. 7

8 SOLUCIÓN FINAL USANDO UN ARREGLO import javax.swing.joptionpane; public class Programa1Final //1. Calcular el salario promedio de los empleados double salario[];//declaración del arreglo de Salarios double sumsalario=0,salariopromedio; int totalempleados, cantemplsalsuperior=0; totalempleados=integer.parseint(joptionpane.showinputdialog(null,"ingrese cantidad de empleados")); salario= new double[totalempleados];//creación del arreglo de Salarios for(int i=0;i<totalempleados;i++) //Lectura de cada posición (i) del arreglo (en cada posición se almacena un salario diferente salario[i]=double.parsedouble(joptionpane.showinputdialog(null,"ingrese salario del empleado")); sumsalario=sumsalario+salario[i]; salariopromedio=sumsalario/totalempleados; JOptionPane.showMessageDialog(null, "El salario promedio es "+salariopromedio); //2. Determinar cuántos empleados ganan un salario superior al promedio for(int i=0;i<totalempleados;i++) //Uso del arreglo de salarios, previamente cargado en la línea 18 if(salario[i] > salariopromedio) cantemplsalsuperior++; JOptionPane.showMessageDialog(null, "El numero de empleados con salario superior al promedio es "+cantemplsalsuperior); 58

9 Ejecución del programa: Ingrese cantidad de empleados 6 Aceptar Ingrese Salario de empleados Aceptar Ingrese Salario de empleados Aceptar Ingrese Salario de empleados Aceptar Ingrese Salario de empleados Aceptar Ingrese Salario de empleados Aceptar El salario promedio es Ingrese Salario de empleados Aceptar Aceptar El numero de empleados con salarios superior al promedio es 3 Aceptar 9

10 2. DECLARACIÓN, CREACIÓN Y USO DE ARREGLOS 2.1 Sintaxis para declarar y crear un arreglo. La declaración de un arreglo es similar a la declaración de una variable, la sintaxis es la siguiente: tipodato nombrearreglo[ ]; Ejemplos: int edad[ ]; Declaración de un arreglo de enteros llamado edad float nota[ ]; Declaración de un arreglo de reales llamado nota String nombre[ ]; Declaración de un arreglo de cadenas llamado nombre En el ejercicio anteriormente resuelto, se aprecia la declaración de un arreglo de tipo doublé llamado salario: 10

11 import javax.swing.joptionpane; public class Programa1Final //1. Calcular el salario promedio de los empleados double salario[];//declaración del arreglo de Salarios double sumsalario=0,salariopromedio; int totalempleados, cantemplsalsuperior=0; totalempleados=integer.parseint(joptionpane.showinputdialog(null,"ingrese cantidad de empleados")); salario= new double[totalempleados];//creación del arreglo de Salarios for(int i=0;i<totalempleados;i++) //Lectura de cada posición (i) del arreglo (en cada posición se almacena un salario diferente salario[i]=double.parsedouble(joptionpane.showinputdialog(null,"ingrese salario del empleado")); sumsalario=sumsalario+salario[i]; salariopromedio=sumsalario/totalempleados; JOptionPane.showMessageDialog(null, "El salario promedio es "+salariopromedio); //2. Determinar cuántos empleados ganan un salario superior al promedio for(int i=0;i<totalempleados;i++) //Uso del arreglo de salarios, previamente cargado en la línea 18 if(salario[i] > salariopromedio) cantemplsalsuperior++; JOptionPane.showMessageDialog(null, "El numero de empleados con salario superior al promedio es "+cantemplsalsuperior); Después de declarar un arreglo, este debe crearse, para ello se usa la palabra reservada new y se define la cantidad de posiciones que el arreglo puede contener para el almacenamiento de valores. Sintaxis: Arreglo = new TipoDato[tamaño]; 11

12 Ejemplos: edad = new int [10]; Creación del arreglo edad con 10 posiciones nota = new float [15]; Creación del arreglo nota con 15 posiciones nombre = new String [5]; Creación del arreglo nombre con 5 posiciones En el ejercicio anteriormente resuelto, se aprecia la creación de un arreglo llamado salario de una cantidad de posiciones definida por la variable totalempleados: import javax.swing.joptionpane; public class Programa1Final //1. Calcular el salario promedio de los empleados double salario[];//declaración del arreglo de Salarios double sumsalario=0,salariopromedio; int totalempleados, cantemplsalsuperior=0; totalempleados=integer.parseint(joptionpane.showinputdialog(null,"ingrese cantidad de empleados")); salario= new double[totalempleados];//creación del arreglo de Salarios for(int i=0;i<totalempleados;i++) //Lectura de cada posición (i) del arreglo (en cada posición se almacena un salario diferente salario[i]=double.parsedouble(joptionpane.showinputdialog(null,"ingrese salario del empleado")); sumsalario=sumsalario+salario[i]; salariopromedio=sumsalario/totalempleados; JOptionPane.showMessageDialog(null, "El salario promedio es "+salariopromedio); //2. Determinar cuántos empleados ganan un salario superior al promedio for(int i=0;i<totalempleados;i++) //Uso del arreglo de salarios, previamente cargado en la línea 18 if(salario[i] > salariopromedio) cantemplsalsuperior++; JOptionPane.showMessageDialog(null, "El numero de empleados con salario superior al promedio es "+cantemplsalsuperior); La primera posición de un arreglo en Java es la posición 0 y la última es n-1, donde n es el tamaño del arreglo. 12

13 En Java también es posible declarar y crear un objeto en la misma línea de código, ejemplo: int edad [ ] = new int [10]; Declaración y creación de un arreglo llamado edad de 10 posiciones de tipo entero. floatnota [ ] = new float [15]; Declaración y creación de un arreglo llamado nota de 15 posiciones de tipo float. String nombre [ ] = new String [5]; Declaración y creación de un arreglo llamado nombre de 5 posiciones de tipo String. El siguiente ejemplo muestra la declaración, creación, inicialización y consulta de un arreglo llamado edad de 5 posiciones de tipo entero: public class Programa2 int edad[]= new int[5]; edad[0]=18; edad[1]=20; edad[2]=15; edad[3]=35; edad[4]=53; for(int i=0;i<5;i++) System.out.println("El valor del arreglo edad en la posicion "+i+" es "+edad[i]); Al ejecutar el programa, el resultado es el siguiente: 13

14 También es posible inicializar un arreglo en la misma línea donde es declarado y creado. El siguiente ejemplo declara, crea e inicializa en la misma línea de código un arreglo de 5 posiciones de tipo cadena con los nombres de 5 personas diferentes, posteriormente se imprime el contenido del arreglo: public class Programa3 String nombre[]="juan","pedro","luis","lina","diana"; for(int i=0;i<5;i++) System.out.println(nombre[i]); Al ejecutar el programa, el resultado es el siguiente: 14

15 2.2 Recorrido de un arreglo. Como se ha visto anteriormente, el recorrido de un arreglo requiere de un ciclo para pasar por cada una de sus posiciones; en el programa anterior, se aprecia el uso del ciclo for para acceder a todas las posiciones del arreglo nombres. public class Programa3 String nombre[]="juan","pedro","luis","lina","diana"; for(int i=0;i<5;i++) System.out.println(nombre[i]); Pero qué podría ocurrir al intentar acceder a una posición inexistente de un arreglo?. Este es un error común en programación, veamos el siguiente ejemplo: public class Programa3A String nombre[]="juan","pedro","luis","lina","diana"; for(int i=0;i<=5;i++) System.out.println(nombre[i]); 15

16 El arreglo anterior es de 5 posiciones, las cuales están comprendidas desde la posición 0 hasta la posición 4. Al intentar acceder la posición 5 del arreglo, se lanzará una excepción de tipo ArrayIndexOutOfBoundsException Afortunadamente existe una forma más segura de recorrer un arreglo, esta es utilizando un ciclo especial conocido como el ciclo for each. Sintaxis: for (TipoDato variable : Arreglo) Permite recorrer todas las posiciones del arreglo, a través de la variable Ejemplo: for (Stringx : nombre) Recorre todas las posiciones del arreglo nombre a través de la variable x El ejercicio anterior, puede ser modificado para realizar el recorrido del arreglo de manera segura mediante el uso del ciclo for each: 16

17 public class Programa3A String nombre[]="juan","pedro","luis","lina","diana"; for(string x: Nombre) System.out.println(x); Al ejecutar el programa, el resultado es el siguiente: 2.3 Arreglos de Objetos. 17

18 2.3 Arreglos de Objetos. De la misma manera como se declaran, crean, inicializan y acceden los arreglos de tipos de datos primitivos se hace con los arreglos de objetos. De hecho el arreglo de tipo String es un arreglo de objetos. Pero para entender mejor este aspecto, vamos a implementar un programa que cree un arreglo de objetos asociados a una clase personalizada. El siguiente es el código de la clase Alumno: public class Alumno private String nombre; private double nota; public Alumno(String nombre,double nota) this.nombre=nombre; this.nota=nota; public String getnombre() return nombre; public double getnota() return nota; 18

19 El programa 4, muestra la manera de crear un arreglo de objetos de la clase Alumno y su respectivo procesamiento: public class Programa4 Alumno estudiante[]=new Alumno[3]; estudiante[0]=new Alumno("Andres",3.5); estudiante[1]=new Alumno("Julian",5); estudiante[2]=new Alumno("Fabian",4.2); for(alumno al:estudiante) System.out.println("El alumno "+al.getnombre()+" obtuvo una nota de "+al.getnota()); Linea 5 : Declaración y creación de un arreglo de 3 posiciones de tipo Alumno Linea 6,7,8 : Declaración y creación de un arreglo de 3 posiciones de tipo Alumno Linea 10 : Configuración del ciclo for each para recorrer todas las posiciones del arreglo de tipo Alumno llamado estudiante a través de una variable llamada al Linea 12 : Acceso a los métodos de cada objeto almacenado en el arreglo Al ejecutar el programa, se obtiene el siguiente resultado: 19

20 3.0 COLECCIONES Y GENERICS Los arreglos son una excelente herramienta de programación, principalmente cuando la cantidad de posiciones del mismo se mantiene constante, sin embargo, al momento de incluir más elementos dentro de un arreglo o al momento de querer eliminar posiciones del mismo, los arreglos son ineficientes. En Java existen otras estructuras de almacenamiento conocidas como colecciones. Una colección permite almacenar información en memoria de manera dinámica, es decir, permite el aumento o disminución del tamaño de la colección de acuerdo con la necesidad de la aplicación. 3.1 Tipos de Colecciones y Características. COLLECTION List Set ArrayList LinkedList HashSet TreeSet 20

21 ELEMENTO TIPO DESCRIPCION Collection List Interfaz Interfaz Define un conjunto de métodos comunes a las demás interfaces o clases que se derivan de la interfaz Collection. Maneja de manera ordenada los elementos introducidos de acuerdo con el orden de inserción. Permite elementos duplicados. Set Interfaz Colección desordenada de objetos. No permite elementos duplicados ArrayList LinkedList Clase Clase Clase concreta que implementa la interfaz List, esta clase se basa en un arreglo dinámico. Permite un acceso rápido a los elementos de la colección, pero es lenta para la inserción o eliminación de objetos. Clase concreta que implementa la interfaz List, esta clase se basa en una lista enlazada. Es muy útil cuando la cantidad de elementos de la colección es muy variable. El acceso a un elemento particular de la colección es más lento. HashSet Clase Clase concreta que implementa la interfaz Set. Los elementos de esta clase no permiten duplicados y no se almacenan en orden no determinado. TreeSet Clase Clase concreta que implementa la interfaz Set. Los elementos de esta clase no permiten duplicados y sus elementos se ordenan de manera ascendente. Para usar cualquier elemento de la API de Colecciones, se debe implementar el paquete java.util 21

22 3.2 Uso de la clase ArrayList. Para comprender mejor el uso de la clase ArrayList, se presenta el siguiente ejemplo: import java.util.arraylist; public class TestArrayList //Crea, llena e imprime una lista con números ArrayList listanums= new ArrayList(); listanums.add(8); listanums.add(3); listanums.add(5); listanums.add(2); listanums.add(3); System.out.println("Lista de numeros: "+listanums); // //Crea, llena e imprime una lista con nombres ArrayList listanombres= new ArrayList(); listanombres.add("juan"); listanombres.add("pedro"); listanombres.add("carlos"); listanombres.add("daniel"); listanombres.add("carlos"); System.out.println("Lista de nombres:"+listanombres); // //Obtener un elemento particular de la lista System.out.println("Numero posicion 2:"+listaNums.get(2)); System.out.println("Nombre posicion 0:"+listaNombres.get(0)); //Reemplazar un elemento de la lista listanums.set(0,15); listanombres.set(0,"claudia"); //Las listas quedan así: System.out.println("Lista de numeros: "+listanums); System.out.println("Lista de nombres:"+listanombres); La clase ArrayList está basada en un arreglo dinámico y permite gestionar su contenido a través de posiciones específicas. Por implementar la interfaz List, el almacenamiento de sus datos se da de acuerdo con el orden de inserción y permite los elementos repetidos. 22

23 3.3 Uso de la clase LinkedList. Para comprender mejor el uso de la clase LinkedList, se presenta el siguiente ejemplo: import java.util.linkedlist; public class TestLinkedList //Crea, llena e imprime una lista con números LinkedList listanums= new LinkedList(); listanums.add(8); listanums.add(3); listanums.add(5); listanums.add(2); listanums.add(3); //Insertar un nuevo dato al inicio de la lista listanums.addfirst(10); System.out.println("Lista de numeros: "+listanums); // //Crea, llena e imprime una lista con nombres LinkedList listanombres= new LinkedList(); listanombres.add("juan"); listanombres.add("pedro"); listanombres.add("carlos"); listanombres.add("daniel"); listanombres.add("carlos"); //Insertar un nuevo dato al inicio de la lista listanombres.addfirst("julian"); System.out.println("Lista de nombres:"+listanombres); // //Obtiene y remueve el primer elemento de la lista System.out.println("Elemento removido:"+listanums.poll()); System.out.println("Elemento removido:"+listanombres.poll()); //Las listas quedan así: System.out.println("Lista de numeros: "+listanums); System.out.println("Lista de nombres:"+listanombres); La clase LinkedList está basada en una lista doblemente enlazada, en la que se conoce cuál es el primer elemento y último elemento de la lista, por esta razón, se facilitan las operaciones que se hacen al principio o al final de la lista como la inserción o eliminación de elementos. Por implementar la interfaz List, el almacenamiento de sus datos se da de acuerdo con el orden de inserción y permite los elementos repetidos. 23

24 3.4 Uso de la clasehashset. Para comprender mejor el uso de la clase HashSet, se presenta el siguiente ejemplo: import java.util.hashset; public class TestHashSet //Crea, llena e imprime una lista con números HashSet listanums= new HashSet(); listanums.add(8); listanums.add(3); listanums.add(5); listanums.add(2); listanums.add(3); System.out.println("Lista de numeros: "+listanums); // //Crea, llena e imprime una lista con nombres HashSet listanombres= new HashSet(); listanombres.add("juan"); listanombres.add("pedro"); listanombres.add("carlos"); listanombres.add("daniel"); listanombres.add("carlos"); System.out.println("Lista de nombres:"+listanombres); // //Remueve un elemento de la lista listanums.remove(5); listanombres.remove("pedro"); //Las listas quedan así: System.out.println("Lista de numeros: "+listanums); System.out.println("Lista de nombres:"+listanombres); La clase HashSetbasa la organización de sus elementos en un algoritmo especial, mediante el cual, cada elemento posee una clave o identificador no manipulable a través del cual se realiza el ordenamiento y búsqueda de los elementos de la colección. Por esta razón el orden de los elementos almacenados en la colección es indeterminado. Al implementar la interfaz Set, la clase HashSet tiene la característica de no permitir elementos duplicados. 24

25 3.5 Uso de la clase TreeSet. Para comprender mejor el uso de la clase TreeSet, se presenta el siguiente ejemplo: import java.util.treeset; public class TestTreeSet //Crea, llena e imprime un conjunto con números TreeSet listanums= new TreeSet(); listanums.add(8); listanums.add(3); listanums.add(5); listanums.add(2); listanums.add(3); System.out.println("Lista de numeros: "+listanums); // //Crea, llena e imprime un conjunto con nombres TreeSet listanombres= new TreeSet(); listanombres.add("juan"); listanombres.add("pedro"); listanombres.add("carlos"); listanombres.add("daniel"); listanombres.add("carlos"); System.out.println("Lista de nombres:"+listanombres); // //Elementos mayores a un elemento dado System.out.println("Numeros mayores o iguales a 3:"+listaNums.tailSet(3)); System.out.println("Nombres mayores o iguales a Daniel:"+listaNombres.tailSet("Daniel")); //Se muestran los datos en orden descendente System.out.println("Numeros en orden descendente: "+listanums.descendingset()); System.out.println("Nombres en orden descendente:"+listanombres.descendingset()); La clase TreeSet mantiene siempre los elementos de la colección de manera ordenada. Al implementar la interfaz Set, la clase TreeSet tiene la característica de no permitir elementos duplicados. Posee un conjunto de métodos que permiten aprovechar la ventaja de mantener siempre los datos ordenados. 25

26 3.6 Los generics y las colecciones. Los datos que se almacenan en una colección siempre son de tipo Object, esto significa que teóricamente en una colección podemos almacenar cualquier dato. Esto aunque a primera vista parece una ventaja, en la práctica presenta dificultades, en primer lugar por la falta de seguridad en los datos almacenados y en segundo lugar, por la necesidad de hacer casting o conversiones en los datos almacenados para pasarlos del tipo Object a su tipo real. Veamos el siguiente ejemplo: import java.util.arraylist; public class Generics1 //Se crea una colección y se le asignan datos //de diferentes tipos ArrayList milista= new ArrayList(); milista.add(4); milista.add("juan"); milista.add(new Alumno("Pedro",4.3)); El programa anterior compila sin problemas, porque una colección recibe datos de cualquier tipo, debido a que todos los datos al interior de la colección son tratados como datos de tipo Object. Esta característica no le permite al programador tener un control en tiempo de compilación sobre la integridad de los datos almacenados. Si se intenta recuperar la información de la lista en diferentes variables, se generan errores de compilación, por incompatibilidad de tipo de datos: 26

27 import java.util.arraylist; public class Generics1 //Se crea una colección y se le asignan datos //de diferentes tipos ArrayList milista= new ArrayList(); milista.add(4); milista.add("juan"); milista.add(new Alumno("Pedro",4.3)); //Para obtener los datos en su original tipo //se requiere hacer casting. int a = milista.get(0); String b = milista.get(1); Alumno c = milista.get(2); Las instrucciones anteriores generan error de compilación. Para permitir recuperar los datos en su plenitud, es necesario hacer casting de datos, es decir, realizar una conversión de datos entre el tipo Object (que es por defecto el tipo de dato de cualquier elemento al interior de una colección) y el tipo de dato deseado. 27

28 import java.util.arraylist; public class Generics1 //Se crea una colección y se le asignan datos //de diferentes tipos ArrayList milista= new ArrayList(); milista.add(4); milista.add("juan"); milista.add(new Alumno("Pedro",4.3)); //Para obtener los datos en su original tipo //se requiere hacer casting. int a = ( Intiger )milista.get(0); String b = ( String ) milista.get(1); Alumno c = ( Alumno ) milista.get(2); Para tener mayor control sobre los datos que se almacenan en una colección y para evitar la necesidad de realizar una gran cantidad de casting a la hora de trabajar con colecciones, a partir de la versión 5 de Java se incluye el concepto de Generics. Los generics permiten asignarle a una colección un tipo de dato predeterminado. La sintaxis para la definición de una colección con Generics es la siguiente: 28

29 TipoColección<TipoDato> nombrecoleccion = new TipoColección<TipoDato>(); Ejemplo: LinkedList<String>ciudades = new LinkedList<String> (); import java.util.arraylist; public class Generics2 //Se crea una colección de tipo entero para //el almacenamiento y procesamiento de numeros ArrayList<Integer> listanums = new ArrayList<Integer>(); listanums.add(2); listanums.add(7); listanums.add("juan"); En la línea 9 se define una colección y se especifica que solo almacenará datos de tipo entero, usando Generics. En la línea 12 se intenta agregar un dato de otro tipo, con lo cual se genera un error en tiempo de compilación: 29

30 El siguiente ejemplo muestra el uso de colecciones con Generics: import java.util.arraylist; import java.util.linkedlist; public class Generics3 //Se crea una colección de tipo entero para //el almacenamiento y procesamiento de numeros ArrayList<Integer> listanums = new ArrayList<Integer>(); listanums.add(2); listanums.add(7); listanums.add(5); //Se crea una colección de tipo string para //el almacenamiento y procesamiento de cadenas de caracteres LinkedList<String> listaciudades = new LinkedList<String>(); listaciudades.add("manizales"); listaciudades.add("medellin"); listaciudades.add("cali"); //Se crea una colección de tipo Alumno para //el almacenamiento y procesamiento de Alumnos ArrayList<Alumno> alumnos = new ArrayList<Alumno>(); alumnos.add(new Alumno("Andres",3.2)); alumnos.add(new Alumno("Julian",4.2)); alumnos.add(new Alumno("Carlos",4.9)); //Procesamiento de los datos almacenados en las colecciones //sin necesidad de casting int a=listanums.get(0); String b=listaciudades.get(0); Alumno c=alumnos.get(0); System.out.println("El primer numero es "+a); System.out.println("La primera ciudad es "+b); System.out.println("El alumno "+c.getnombre()+" obtuvo una nota de "+c.getnota()); El resultado de ejecutar el anterior programa es el siguiente: 30

31 Control de Documento Construcción Objeto de Aprendizaje Arreglos y Colecciones en JAVA Desarrollador de contenido Experto temático Asesor Pedagógico Productor Multimedia Programadores Líder Expertos Temáticos Líder línea de producción Andrés Julián Valencia Osorio Rafael Neftalí Lizcano Reyes Carlos Julian Ramirez Benitez Daniel Eduardo Martínez Díaz Ana Yaqueline Chavarro Parra Santiago Lozada Garcés 31

LABORATORIO 6. ELEMENTOS DEL LENGUAJE DEPROGRAMACIÓN Y ESTRUCTURAS DE DATOS EN JAVA

LABORATORIO 6. ELEMENTOS DEL LENGUAJE DEPROGRAMACIÓN Y ESTRUCTURAS DE DATOS EN JAVA LABORATORIO 6. ELEMENTOS DEL LENGUAJE DEPROGRAMACIÓN Y ESTRUCTURAS DE DATOS EN JAVA GUÍA DE LABORATORIO Nº 6 Actividad de Proyecto: CODIFICAR LOS MÓDULOS DEL SISTEMA DE INFORMACIÓN Estructura de contenidos.

Más detalles

ESTRUCTURAS CICLICAS

ESTRUCTURAS CICLICAS ESTRUCTURA DE CONTENIDOS 1.ESTRUCTURAS CICLICAS 1.1. La Estructura Cíclica PARA. 1.2. La Estructura Cíclica MIENTRAS. 1.3. La Estructura Cíclica REPITA. 2. Armando el rompecabezas con estructuras de programación

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

INTERFACE COLLECTION DE JAVA.UTIL DEL API JAVA. EJERCICIOS Y EJEMPLOS RESUELTOS. MÉTODOS ADD, REMOVE, SIZE. STREAMS (CU00917C)

INTERFACE COLLECTION DE JAVA.UTIL DEL API JAVA. EJERCICIOS Y EJEMPLOS RESUELTOS. MÉTODOS ADD, REMOVE, SIZE. STREAMS (CU00917C) APRENDERAPROGRAMAR.COM INTERFACE COLLECTION DE JAVA.UTIL DEL API JAVA. EJERCICIOS Y EJEMPLOS RESUELTOS. MÉTODOS ADD, REMOVE, SIZE. STREAMS (CU00917C) Sección: Cursos Categoría: Lenguaje de programación

Más detalles

EL PAQUETE JAVA.UTIL DEL API JAVA. PRINCIPALES INTERFACES Y CLASES: STRINGTOKENIZER, DATE, CALENDAR, HASHSET, TREEMAP, TREESET...

EL PAQUETE JAVA.UTIL DEL API JAVA. PRINCIPALES INTERFACES Y CLASES: STRINGTOKENIZER, DATE, CALENDAR, HASHSET, TREEMAP, TREESET... APRENDERAPROGRAMAR.COM EL PAQUETE JAVA.UTIL DEL API JAVA. PRINCIPALES INTERFACES Y CLASES: STRINGTOKENIZER, DATE, CALENDAR, HASHSET, TREEMAP, TREESET... (CU00916C) Sección: Cursos Categoría: Lenguaje de

Más detalles

LABORATORIO 3. PROGRAMACIÓN CON EL LENGUAJE JAVA

LABORATORIO 3. PROGRAMACIÓN CON EL LENGUAJE JAVA LABORATORIO 3. PROGRAMACIÓN CON EL LENGUAJE JAVA GUÍA DE LABORATORIO Nº 3 Actividad de Proyecto: ANALIZAR LOS PROCESOS Y DATOS DEL SISTEMA DE INFORMACIÓN Estructura de contenidos. 1. Introducción. 2 2.

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

CURSO : ESTRUCTURA DE DATOS DOCENTE : ING. JUAN ZEVALLOS VALLE

CURSO : ESTRUCTURA DE DATOS DOCENTE : ING. JUAN ZEVALLOS VALLE CURSO : ESTRUCTURA DE DATOS DOCENTE : ING. JUAN ZEVALLOS VALLE 1 Estructura de Datos 1. Logica de Programación 2. Uso de Algoritmos usando Lenguaje Java 3. Ingreso de datos 4. Sentencias de Control 1.

Más detalles

AGRUPANDO OBJETOS (Parte-I)

AGRUPANDO OBJETOS (Parte-I) AGRUPANDO OBJETOS (Parte-I) Por Villarroel [email protected] UMSS - Contenido Conceptos a saber: Colecciones Iteradores Ciclos Arreglos Contenido 1. Agrupando Objetos en colecciones de tamaño flexible

Más detalles

INTERFACE LIST. CLASE LINKEDLIST DEL API JAVA. EJERCICIO RESUELTO Y DIFERENCIAS ENTRE ARRAYLIST Y LINKEDLIST (CU00921C)

INTERFACE LIST. CLASE LINKEDLIST DEL API JAVA. EJERCICIO RESUELTO Y DIFERENCIAS ENTRE ARRAYLIST Y LINKEDLIST (CU00921C) APRENDERAPROGRAMAR.COM INTERFACE LIST. CLASE LINKEDLIST DEL API JAVA. EJERCICIO RESUELTO Y DIFERENCIAS ENTRE ARRAYLIST Y LINKEDLIST (CU00921C) Sección: Cursos Categoría: Lenguaje de programación Java nivel

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

INTERFACE LIST DEL API JAVA. CLASES ARRAYLIST, LINKEDLIST, STACK, VECTOR. EJEMPLO CON ARRAYLIST. (CU00920C)

INTERFACE LIST DEL API JAVA. CLASES ARRAYLIST, LINKEDLIST, STACK, VECTOR. EJEMPLO CON ARRAYLIST. (CU00920C) APRENDERAPROGRAMAR.COM INTERFACE LIST DEL API JAVA. CLASES ARRAYLIST, LINKEDLIST, STACK, VECTOR. EJEMPLO CON ARRAYLIST. (CU00920C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado

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

ARREGLOS UNIDIMENSIONALES

ARREGLOS UNIDIMENSIONALES ARREGLOS UNIDIMENSIONALES CONTENIDO 1. Los Arreglos y Java. 1.1 Definición de arreglos 1.2 Inserción de datos 1.3 Extracción de datos 2. Trabajando con arreglos 3. Ejercicios de repaso Slide 2 Definiendo

Más detalles

Fundamentos de Programación CAPÍTULO 3 ARREGLOS. Ing. Bruno López Takeyas, M.C. 1

Fundamentos de Programación CAPÍTULO 3 ARREGLOS. Ing. Bruno López Takeyas, M.C.  1 CAPÍTULO 3 ARREGLOS 2 http://www.itnuevolaredo.edu.mx/takeyas 1 Preguntas detonadoras Qué es un arreglo? Para qué sirve? Cuáles son las características que distinguen a los arreglos? Un arreglo, puede

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

Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.

Unidad V. Ya veremos qué poner en algunas_palabras y algo_más, por ahora sigamos un poco más. Implementación Orientada a Objetos. Unidad V 5.1 Estructura de una clase. Una clase consiste en: algunas_palabras class nombre_de_la_clase [algo_más] { [lista_de_atributos] [lista_de_métodos] Lo que está

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

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: [email protected] / [email protected] Web: http://estructuradatos.tripod.com 1 Qué

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

SISTEMA DE INFORMACIÓN

SISTEMA DE INFORMACIÓN LABORATORIO 10. Programación Orientada a Objetos en Java GUÍA DE LABORATORIO Nº 10 Actividad de Proyecto: CODIFICAR LOS MÓDULOS DEL SISTEMA DE INFORMACIÓN Estructura de contenidos. 1. Introducción. 2 2.

Más detalles

Examen Teórico. Convocatoria de Febrero de 2015

Examen Teórico. Convocatoria de Febrero de 2015 Examen Teórico Convocatoria de Febrero de 2015 Nombre: DNI: Grupo: 1. Contesta de forma razonada a las siguientes cuestiones relacionadas con los ficheros.jar: a) Para qué se utilizan los ficheros con

Más detalles

LABORATORIO 15. DESARROLLO DE APLICACIONES WINDOWS CON C# VISUAL STUDIO.NET GUÍA DE LABORATORIO Nº 15 DE INFORMACIÓN. Estructura de contenidos.

LABORATORIO 15. DESARROLLO DE APLICACIONES WINDOWS CON C# VISUAL STUDIO.NET GUÍA DE LABORATORIO Nº 15 DE INFORMACIÓN. Estructura de contenidos. LABORATORIO 15. DESARROLLO DE APLICACIONES WINDOWS CON C# VISUAL STUDIO.NET GUÍA DE LABORATORIO Nº 15 Actividad de Proyecto: CODIFICAR LOS MÓDULOS DEL SISTEMA DE INFORMACIÓN Estructura de contenidos. 1.

Más detalles

INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C)

INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C) APRENDERAPROGRAMAR.COM INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C) Sección: Cursos Categoría: Lenguaje de programación Java nivel

Más detalles

12. Tipos de atributos

12. Tipos de atributos Programación orientada a objetos con Java 135 12. Tipos de atributos Objetivos: a) Profundizar en el concepto de atributo de una clase e indicar los tipos de atributos en Java b) Interpretar el código

Más detalles

Tema: Punteros: Puntero this en C#.

Tema: Punteros: Puntero this en C#. Programación II. Guía No.11 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Punteros: Puntero this en C#. Objetivos Conocer el manejo de los punteros en C#. Utilizar el puntero

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

Práctica No. 5. Estructuras con Memoria Dinámica

Práctica No. 5. Estructuras con Memoria Dinámica Práctica No. 5. Estructuras con Memoria Dinámica Comenzar creando un nuevo proyecto tipo Java llamada Practica05, crear también la clase principal. Se cambiará el nombre del paquete por defecto a uam.pvoe.estructuras.principal,

Más detalles

LABORATORIO 9. REPLICACIÓN DE BASE DE DATOS

LABORATORIO 9. REPLICACIÓN DE BASE DE DATOS LABORATORIO 9. REPLICACIÓN DE BASE DE DATOS GUÍA DE LABORATORIO Nº 9 Actividad de Proyecto No. 11: ESTABLECER PLANES DE SINCRONIZACIÓN PARA BASE DE DATOS Y OBJETOS DISTRIBUIDOS. Estructura de contenidos.

Más detalles

INTERFACES SET Y SORTEDSET DEL API DE JAVA. CLASES HASHSET Y TREESET. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00924C)

INTERFACES SET Y SORTEDSET DEL API DE JAVA. CLASES HASHSET Y TREESET. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00924C) APRENDERAPROGRAMAR.COM INTERFACES SET Y SORTEDSET DEL API DE JAVA. CLASES HASHSET Y TREESET. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00924C) Sección: Cursos Categoría: Lenguaje de programación Java nivel

Más detalles

Sesión 5. TEMA 7 ESTRUCTURAS DE ALMACENAMIENTO Y AGRUPACIÓN DE OBJETOS

Sesión 5. TEMA 7 ESTRUCTURAS DE ALMACENAMIENTO Y AGRUPACIÓN DE OBJETOS Sesión 5. TEMA 7 ESTRUCTURAS DE ALMACENAMIENTO Y AGRUPACIÓN DE OBJETOS Fundamentos de Informática José Jaime Noguera Noguera 15 de marzo de 2018 Contenidos 1 ArrayList 2 Bucles 3 Matrices 4 Cuestiones

Más detalles

o Los arreglos son colecciones ordenadas de datos del mismo tipo. o Ejemplos: 2

o Los arreglos son colecciones ordenadas de datos del mismo tipo. o Ejemplos: 2 Arreglos en Java o Los arreglos son colecciones ordenadas de datos del mismo tipo. o Ejemplos: 3 27 50 4 Arreglo de bytes Arreglos con tipos primitivos hola Casa Auto No Arreglo de Strings EII147-01-02

Más detalles

int[] nombrearray1; int nombrearray2[];

int[] nombrearray1; int nombrearray2[]; USANDO ARREGLOS Y STRINGS Arrays unidimensionales Declaración En Java un array se declara de las siguientes formas: int[] nombrearray1; int nombrearray2[]; Ambas declaraciones son equivalentes. La primera

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

Objetivos. El alumno empleará el concepto de excepción en la programación orientada a objetos para el manejo de errores de ejecución.

Objetivos. El alumno empleará el concepto de excepción en la programación orientada a objetos para el manejo de errores de ejecución. Universidad Nacional Autónoma de México Facultad de Ingeniería PRACTICA 10 PROGRAMACIÓN ORIENTADA A OBJETOS (MANEJO DE EXCEPCIONES) Objetivos El alumno empleará el concepto de excepción en la programación

Más detalles

Estructura de Datos ARREGLOS

Estructura de Datos ARREGLOS Estructura de Datos ARREGLOS ESTRUCTURAS DE INFORMACIÓN Una estructura de datos o de información es una colección de datos que pueden ser caracterizados por su organización y las operaciones que se definen

Más detalles

Examen Teórico Convocatoria de Junio de 2012

Examen Teórico Convocatoria de Junio de 2012 Examen Teórico Convocatoria de Junio de 2012 Nombre: DNI: Titulación: 1. Sobre el control de errores en Java: a) El siguiente método contiene un error de compilación debido al uso de excepciones. Explica

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

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.

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

Tema: Plantillas en C++.

Tema: Plantillas en C++. Programación II. Guía 11 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Plantillas en C++. Objetivos Específicos Conocer los tipos de plantillas Utilizar las plantillas de

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

LABORATORIO 5. Aplicando el MER (Modelo Entidad Relación)

LABORATORIO 5. Aplicando el MER (Modelo Entidad Relación) LABORATORIO 5. Aplicando el MER (Modelo Entidad Relación) GUÍA DE LABORATORIO Nº 5 Actividad de Proyecto: ESPECIFICAR EL MODELO CONCEPTUAL DEL SISTEMA DE INFORMACIÓN Estructura de contenidos. 1. Introducción.

Más detalles

Tema 4- Representación Enlazada

Tema 4- Representación Enlazada Tema 4- Representación Enlazada Tema 4: Representación Enlazada Índice general: 1. Representación Enlazada: Variables referencia Java como enlaces. 2. Listas Enlazadas Genéricas. Operaciones y costes.

Más detalles

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.

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

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

INTERFACES MAP Y SORTEDMAP DEL API JAVA. CLASES HASHMAP Y TREEMAP. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00922C)

INTERFACES MAP Y SORTEDMAP DEL API JAVA. CLASES HASHMAP Y TREEMAP. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00922C) APRENDERAPROGRAMAR.COM INTERFACES MAP Y SORTEDMAP DEL API JAVA. CLASES HASHMAP Y TREEMAP. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00922C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado

Más detalles

Unidad Nº V Listas Enlazadas

Unidad Nº V Listas Enlazadas Instituto Universitario Politécnico Santiago Mariño Unidad Nº V Listas Enlazadas Lista Enlazadas Es una colección o secuencia de elementos dispuestos uno detrás de otro, en la que cada elemento se conecta

Más detalles

Programación. Test Autoevaluación Tema 6

Programación. Test Autoevaluación Tema 6 Programación Test Autoevaluación Tema 6 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordóñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.

Más detalles

U9 API Collections y Generics

U9 API Collections y Generics U9 API Collections y Generics En esta unidad vamos a estudiar las múltiples maneras que ofrece el lenguaje Java para tratar con conjuntos de elementos, colecciones o listados. Veremos cuando es conveniente

Más detalles

GUIA DE LABORATORIO 4. CONSTRUCCIÓN DE CUBOS PARA UNA BODEGA DE DATOS

GUIA DE LABORATORIO 4. CONSTRUCCIÓN DE CUBOS PARA UNA BODEGA DE DATOS GUIA DE LABORATORIO 4. CONSTRUCCIÓN DE CUBOS PARA UNA BODEGA DE DATOS ESTRUCTURA DE CONTENIDOS. 1. Introducción. 2 2. Objetivo. 2 3. Consideraciones. 3 4. Procedimiento. 4 4.1. Compresión del modelo de

Más detalles

Bases de Datos Distribuidas

Bases de Datos Distribuidas Estructura de contenidos Introducción 1. Definición 2. Rasgos característicos de una BDD 3. Ventajas de las BDD 4. Desventajas de las BDD 5. Sistema de Gestión de Bases de Datos Distribuidas 5.1. Componentes

Más detalles

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Java Avanzado Facultad de Ingeniería. Escuela de computación. 2 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 4 3 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo de sus prácticas

Más detalles

Examen Teórico. Convocatoria de Julio de 2015

Examen Teórico. Convocatoria de Julio de 2015 Examen Teórico Convocatoria de Julio de 2015 Nombre: DNI: Grupo: 1. Sobre la ejecución de aplicaciones Java desde la línea de comandos: a) Explica el significado y uso del parámetro cp. b) Indica si la

Más detalles

Estructura de datos y Programación

Estructura de datos y Programación Estructura de datos y Programación Tema: Conceptos Básicos- Estructuras de control - Arreglos Ing. Analia Méndez Ing. Raquel Zarco Año: 2012 ELEMENTOS DE UN PROGRAMA EN JAVA El programa Java consta de

Más detalles

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los

Más detalles

GUÍA DE LABORATORIO Nº 19 Implementación de casos de prueba

GUÍA DE LABORATORIO Nº 19 Implementación de casos de prueba GUÍA DE LABORATORIO Nº 19 Implementación de casos de prueba GUÍA DE LABORATORIO Nº 19 Actividad de Proyecto: Ejecutar y documentar pruebas del software que cumplan con los estándares de calidad Estructura

Más detalles

ALGORITMICA Y PROGRAMACION POR OBJETOS I

ALGORITMICA Y PROGRAMACION POR OBJETOS I ALGORITMICA Y PROGRAMACION POR OBJETOS I Nivel 1 Problemas, Soluciones y Programas Marcela Hernández Hoyos Solucionar un Problema = Construir un Programa Problema Programador Herramientas y Lenguajes Análisis

Más detalles

CASO DE ESTUDIO LA ÉTICA EN EL BANCO DE VALORES

CASO DE ESTUDIO LA ÉTICA EN EL BANCO DE VALORES CASO DE ESTUDIO LA ÉTICA EN EL BANCO DE VALORES Actividad de Aprendizaje: Diseñar los mecanismos de seguridad y control 1. Contextualización Hace unos tres años se dio en Colombia un escándalo debido a

Más detalles

Informática Lección 5. Arreglos (vectores) Curso Pedro Álvarez y José Ángel Bañares 2/11/2010. Dpto. Informática e Ingeniería de Sistemas.

Informática Lección 5. Arreglos (vectores) Curso Pedro Álvarez y José Ángel Bañares 2/11/2010. Dpto. Informática e Ingeniería de Sistemas. Fundamentos de Informática Lección 5. Arreglos (vectores) Curso 2010-2011 Pedro Álvarez y José Ángel Bañares 2/11/2010. Dpto. Informática e Ingeniería de Sistemas. Índice de contenidos Arreglos: Concepto

Más detalles

Qué son los arreglos

Qué son los arreglos Programación Orientada a Objetos Arreglos Java Ing. Julio Ernesto Carreño Vargas MsC. Qué son los arreglos Estructuras de datos Contiene elementos relacionados del mismo tipo Mantiene el mismo tamaño una

Más detalles

Patrones de Diseño. Patrón de comportamiento Iterator. Técnicas de Programación - Curso 2007/08

Patrones de Diseño. Patrón de comportamiento Iterator. Técnicas de Programación - Curso 2007/08 Patrones de Diseño Patrón de comportamiento Iterator Técnicas de Programación - Curso 2007/08 Propósito Proporcionar acceso secuencial a los elementos de un agregado, sin exponer su representación interna

Más detalles

Examen de Prácticas de Programación Ingeniería Informática

Examen de Prácticas de Programación Ingeniería Informática Examen de Prácticas de Programación Ingeniería Informática Junio 2007 1) (2 puntos) Escribir en Java la implementación de los métodos public void escribematrizenfichero(double[][] m, String nomfich)...

Más detalles

18. Interfaces Declaración de una interfaz

18. Interfaces Declaración de una interfaz Programación orientada a objetos con Java 191 18. Interfaces Objetivos: a) Definir el concepto de interfaz b) Interpretar el código fuente de una aplicación Java donde aparecen interfaces c) Construir

Más detalles

GESTIÓN DE INCIDENTES

GESTIÓN DE INCIDENTES GESTIÓN DE INCIDENTES Estructura de contenidos INTRODUCCIÓN...3 1. DEFINICIÓN...3 2. PROCESOS PARA LA GESTIÓN DE INCIDENTES...4 2.1. Identificación y Registro...4 2.2. Clasificación y Priorización...4

Más detalles

Capítulo 3. Introducción a la programación. Continuar

Capítulo 3. Introducción a la programación. Continuar Capítulo 3 Introducción a la programación Continuar Introducción Java es un lenguaje que tiene muchas ventajas frente a otros lenguajes de programación: es open source (código abierto), esto permite ver

Más detalles

Principios de Computadoras II

Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo [email protected] Qué es un Objeto? Un objeto es una instancia de una clase Las clases actuán como modelos que permiten la creación

Más detalles

UNIVERSIDAD TECNOLÓGICA DE LOS ANDES INGENIERÍA DE SISTEMAS E INFORMÁTICA FUNDAMENTOS DE PROGRAMACIÓN ARREGLOS (ARRAYS)

UNIVERSIDAD TECNOLÓGICA DE LOS ANDES INGENIERÍA DE SISTEMAS E INFORMÁTICA FUNDAMENTOS DE PROGRAMACIÓN ARREGLOS (ARRAYS) UNIVERSIDAD TECNOLÓGICA DE LOS ANDES INGENIERÍA DE SISTEMAS E INFORMÁTICA FUNDAMENTOS DE PROGRAMACIÓN DOCENTE: Ing. Ronald Rentería Ayquipa. MARCO TEÓRICO: ARREGLOS (ARRAYS) En clase ya conocimos algunos

Más detalles

FUNDAMENTOS DE PROGRAMACIÓN ESTRUCTURADA

FUNDAMENTOS DE PROGRAMACIÓN ESTRUCTURADA FUNDAMENTOS DE PROGRAMACIÓN ESTRUCTURADA Estructura de contenidos INTRODUCCIÓN...3 1. MI PRIMER PROGRAMA...4 1.1 La Codificación...4 1.2 La Compilación...4 1.3 La Depuración...5 1.4 La Ejecución...5 2.

Más detalles

Unidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores.

Unidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores. Unidad IV Métodos. 4.1 Definición de un método. El polimorfismo, en programación orientada a objetos, se refiere a la posibilidad de acceder a un variado rango de funciones distintas a través del mismo

Más detalles

Práctica 2. Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones

Práctica 2. Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Práctica 2 Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

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

Tema: Punteros.Puntero this en C#.

Tema: Punteros.Puntero this en C#. POO. Guía No.7 1 Tema: Punteros.Puntero this en C#. Facultad: Ingeniería Escuela: Computación Asignatura: Programación Orientada a Objetos Materiales y Equipo Computadora con el software C#. Guía Número

Más detalles

LABORATORIO 7. ARQUITECTURA LÓGICA DEL SISTEMA DE INFORMACIÓN

LABORATORIO 7. ARQUITECTURA LÓGICA DEL SISTEMA DE INFORMACIÓN LABORATORIO 7. ARQUITECTURA LÓGICA DEL SISTEMA DE INFORMACIÓN GUÍA DE LABORATORIO Nº 7 Actividad de Proyecto: DETERMINAR LA ESTRUCTURA LÓGICA DEL SISTEMA Estructura de contenidos. 1. Introducción. 2 2.

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

Programación Orientada a Objetos

Programación Orientada a Objetos Unidad III Programación Orientada a Objetos en Java Programación Orientada a Objetos Programación I - 0416202 Contenido Esta lección abarca los siguientes temas con respecto a Java: Salida estándar Entrada

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

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

PARTE TEÓRICA - TEST [2,5 PUNTOS]:

PARTE TEÓRICA - TEST [2,5 PUNTOS]: UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA 71901072 PROGRAMACIÓN ORIENTADA A OBJETOS (GRADO EN INGENIERÍA INFORMÁTICA / TECNOLOGÍAS DE LA INFORMACIÓN)

Más detalles