Fundamentos de Programación

Documentos relacionados
Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

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

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

AGRUPA P R OBJET E OS 1

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

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

Tema 4 Colecciones en Java. Programación Orientada a Objetos Curso 2013/2014

Algoritmos y Estructuras de Datos Iteradores. Guillermo Román Díez

Examen Teórico Convocatoria de Junio de 2012

Programación II 2do cuatrimestre 2017

Bloque II. Elementos del lenguaje de programación Java

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

Programación de sistemas Listas enlazadas

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

Federico Peinado

EJERCICIO Y EJEMPLO RESUELTO: USO DE LA INTERFACE ITERABLE DEL API DE JAVA Y MÉTODO ITERATOR. RECORRER COLECCIONES DE OBJETOS (CU00915C)

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2007.

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

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

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

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

Fundamentos de Programación

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

Colecciones. Nadjet Bouayad-Agha Programación 2007

ArrayList en Java. Los principales métodos para trabajar con los ArrayList son los siguientes:

Programación de sistemas Recursión

Examen escrito de Programación 1

Soluciones. boolean pruebaiteraseriegeometrica () { Serie s= new SerieGeometrica (1, 2); return (s.iterator() instanceof IteraSerieGeometrica); }

Programación de sistemas Árboles

Examen de Programación 1. Viernes 31/enero/2014. Problema 1 o (2.5 puntos) Disponer un documento de identificación con fotografía sobre la mesa.

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas

IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++

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

1. (1 punto) Dado el siguiente fragmento en Java:

Tipos abstractos de datos (TAD)

FUNDAMENTOS DE PROGRAMACIÓN - Septiembre 2010

AGRUPANDO OBJETOS (Parte-I)

Uso de Java Generics (I)

TEMA 3. Árboles. Objetivos. Contenidos. Bibliografía. Básica

Interfaces. Amparo López Gaona. Septiembre de Amparo López Gaona () Interfaces Septiembre de / 1

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 (;)

Práctica 11d. Práctica 11d. José M. Ordax

UNADM. Estructura de datos. Guillermo Duran Garcia AL Actividad 2. Identificación de errores en métodos de ordenación

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.

Depto. Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid ETSI Telecomunicación Fundamentos de Programación 15 de diciembre de 2011

Listas enlazadas. Programación de Sistemas

Tema 7.- Fundamentos de la Programación Orientada a Objetos

Estructura de datos y Programación

Práctica 5c. Práctica 5c. José M. Ordax

Entiendo los métodos de Java equals y hashcode

PROGRAMACION ORIENTADA A OBJETOS Ingenieria Informática Final Febrero 2006/07

Examen Teórico. Convocatoria de Febrero de 2018

Universidad de los Andes Ingeniería de Sistemas y Computación. ISIS1205 Algorítmica y Programación 2. Hoja de trabajo teórica Nivel 7 (N7-EE)

Práctica 11f. Práctica 11f. José M. Ordax

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

Examen Teórico. Convocatoria de Julio de 2015

Bloque II. Elementos del lenguaje de programación Java

CLASE ARRAYS DEL API JAVA. MÉTODOS PARA ARRAYS EQUALS (COMPARAR), COPYOF (COPIAR), FILL (RELLENAR). EJEMPLOS. (CU00676B)

Examen de Programación II (Ingeniería Informática)

Programación de sistemas

Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos

Interface nominterface{

Java para programadores

Transcripción:

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

colecciones Cuando tenemos varios objetos del mismo tipo (misma clase) De tamaño variable, adaptándose a lo que haga falta listas ArrayList< TIPO > De tamaño fijo: N elementos arrays TIPO [ ] 2

listas Cuando tenemos muchos datos del mismo tipo listas de tipo T ArrayList<T> Operaciones añadir elementos eliminar elemento acceder al elemento n-ésimo cuántos elementos? recorrer los elementos 3

ArrayList<T> Constructor import java.util.arraylist; public class Agenda { private ArrayList<String> entradas; public Agenda() { entradas = new ArrayList<String>(); 4

ArrayList<T> Cuántos elementos hay? public int numerodenotas() { return entradas.size(); 5

ArrayList<T> Añadir elementos se añaden al final de la lista public void guardanota(string nota) { entradas.add(nota); 6

ArrayList<T> Acceso al elemento n-ésimo cuenta empezando en 0 public String sacanota(int n) { if (n >= 0 && n < numerodenotas()) { return entradas.get(n); return null; 7

ArrayList<T> Elimina el elemento n-ésimo cuenta empezando en 0 public void eliminanota(int n) { if (n >= 0 && n < numerodenotas()) { entradas.remove(n); 8

+ métodos void clear() boolean isempty() void add(int posicion, TIPO elemento) TIPO set(int posicion, TIPO elemento) boolean contains(tipo elemento) int indexof(tipo elemento) http://java.sun.com/javase/6/docs/api/ java/util/arraylist.html 9

recorrido Procesamos todos los términos si sabemos cuántos elementos tiene... public void imprimeagenda() { System.out.println(entradas.get(0)); System.out.println(entradas.get(1));... 10

recorrido Procesamos todos los términos iteración: for each bucle for-each public void imprimeagenda() { for (String nota : entradas) System.out.println(nota); 11

recorrido Procesamos todos los términos bucle con contador bucle for public void imprimeagenda() { for (int i = 0; i < entradas.size(); i++) { System.out.println(entradas.get(i)); 12

recorrido Procesamos todos los términos bucle cero o más bucle while public void imprimeagenda() { int i = 0; while (i < entradas.size()) { System.out.println(entradas.get(i)); i++; 13

recorrido Procesamos todos los términos bucle una o más bucle do-while public void imprimeagenda() { int i = 0; do { System.out.println(entradas.get(i)); i++; while (i < entradas.size()); 14

recorrido Procesamos todos los términos iteración: con Iterator<TIPO> iterador import java.util.iterator; public void imprimeagenda() { Iterator<String> it = entradas.iterator(); while (it.hasnext()) { String nota = it.next(); System.out.println(nota); 15

Contenido compartido Podemos compartir contenido ArrayList<T> v2 = v1; v1 1 2 3 4 v2 => paso de referencia en llamada a métodos 16

Copia del contenido Podemos hacer una copia independiente ArrayList<T> v2= new ArrayList<T>(); for (T v: v1) v2.add(v); ArrayList<T> v2= new ArrayList<T>(v1); 17

Igualdad TRUE si se trata del mismo array v1 == v2 Para comparar contenidos boolean compara(arraylist<t> v1, ArrayList<T> v2) { if (v1 == null v2 == null) return false; if (v1.size()!= v2.size()) return false; for (int i= 0; i < v1.size(); i++) if (v1.get(i)!= v2.get(i)) return false; return true; 18

ejemplo crear una listapara los 100 primeros enteros positivos y cargarlo con el cuadrado de cada uno [ 0, 1, 4, 9, 16, 25, 36, 49,... ] 19

ejemplo crear una listade boolean para los 100 primeros enteros positivos, siendo true si es impar [ false, true, false, true, false, true,... ] 20

ejemplo crear una listade boolean para los 100 primeros enteros positivos, y llenarlo de números aleatorios entre 0 y 1000 [ 30, 17, 514, 216, 701, 0,... ] 21

ejemplo escriba un método que recibe una lista y un número y los multiplica [ 30, 17, 514, 216, 701, 0,... ] * 2 [ 60, 34, 1028, 432, 1402, 0,... ] 22

ejemplo escriba un método que recibe una lista y devuelve el valor mínimo [ 30, 17, 514, 216, 701, 0 ] 0 algo similar, devolviendo la posición del mínimo 5 23

ejemplo dado una lista, calcular la suma de sus valores [ 30, 17, 514, 216, 701, 0 ] 1478 24

ejemplo dada una lista [ 30, 17, 514, 216, 701, 0 ] invertir sus términos de orden [ 0, 701, 216, 514, 17, 30 ] de dos formas: generando otra lista reordenar en la misma lista 25

ejemplo dada una lista [ 30, 17, 514, 216, 701, 0 ] permutarla aleatoriamente [ 0, 701, 17, 514, 30, 216 ] 26

ejemplo dada una lista [ 30, 17, 514, 216, 701, 0 ] escribir un método que devuelve el valor medio 246.33 27

ejemplo escribir un método que determine si una lista está en orden creciente o no 10 4 0 1-3 -3 0 0 1 10 false true 28

ejemplo escriba un método que recibe 2 listas de letras, cada una ordenada, y devuelve una lista que combina ambas respetando el orden [ a, e, i, o, u ] [ d, m, y, z ] [ a, d, e, i, m, o, u, y, z ] 29

búsqueda int busca (int x, ArrayList<Integer> tabla) devuelve i, tal que x == tabla[i] devuelve 1, si no está búsqueda lineal sobre cualquier lista 30