Colecciones.

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE (SL-110) CAPÍTULO 13 Ing. Ronald Criollo.
Advertisements

Técnicas avanzadas en java 1.4 y java 5.0
Curso de java básico (scjp)
Java nos ofrece System.out para escribir en pantalla, pero también tenemos System.in para leer. System.in es un objeto de una clase de java que se llama.
Curso de java básico (scjp)
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
Tablas. Descripción general Introducción a las tablas Creación de tablas Uso de tablas.
Modularidad Estructura de datos.
Archivos Implementar un método que lea una secuencia de números enteros de un archivo y compute la cantidad de elementos leídos.
Curso de Java Estructura del Lenguaje
Lenguaje de consulta de Hibernate
Capitulo 3 Java util.
Genéricos en Java Jaime Ramírez, Ángel Lucas González
Tema 1. Introducción a la programación (Lenguaje java).
Tratamiento de listas en Java
1.2 Sintaxis del lenguaje Java.
2.4 Construcción de un TAD a partir de otro.
Marzo 2007 Lenguajes Visuales Clase III.
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
Archivos Contenido: Archivos de Texto Archivos de Acceso Aleatorio
Excepciones y archivos Info 033. Exception El término Exception es la palabra corta para la frase "evento excepcional." Definition: Una excepción es un.
Método en Java.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
JAVA 1.5 Fernando Almeida Octubre Introducción Java Specification Request (JSR) 14Java Specification Request (JSR) 14 propone introducir tipos y.
10. Hilos Definición y ejecución Thread y Runnable
Inicio Java: Algunas utilidades. Inicio Temporización En ingeniería nos encontramos con tareas que deben repetirse de forma periódica. Son tareas temporizadas.
Java Orientado a Objetos CLASES,OBJETOS Y MÉTODOS
Creación de Aplicaciones
Igor Santos Grueiro. De este tipo de pilas NO vamos a hablar.
Tema 6: Clases Antonio J. Sierra.
Tablas hash Juan Ramón Pérez Pérez Prácticas EDI - © Juan Ramón Pérez.
Unidad I Java y C++ : Similitudes y diferencias
Public class MiClase { public static int tmp = 123; // miembro variable public static final double PI = ;// miembro constante public float.
Técnicas avanzadas de programación Interfaces
USA agenda e itemAgenda
Sockets en Java. Sockets ● Para programar aplicaciones en red en Java se utilizan los Sockets. ● Un socket permite establecer y manejar una conexión entre.
Programación orientada a objetos
Clase Teórica No. 4 Programación IV
Suponiendo que además en la clase U hay: import java.util.*; class U{ static Scanner teclado = new Scanner(System.in); static public int readInt(String.
ÁRBOLES BINARIOS DE BÚSQUEDA
Patrón Observador Un patrón de diseño es una descripción de clases y objetos comunicándose entre si adaptada para resolver un problema de diseño general.
Curso Programación en Java
JAVA J.A.C..
7. Interfaces Herencia múltiple Interfaces Comparable y Comparator
Tema 14: java.lang Antonio J. Sierra. Índice 1. Introducción. 2. Gestión de cadenas. –String –StringBuffer 3. Clases para los tipos simples. –Number –Envolventes.
Framework Class Library (FCL) Dr. Diego Lz. de Ipiña Gz. de Artaza
ESTRUCTURA DE DATOS EN JAVA
Introducción a Java (2ª parte) - excepciones, colecciones, i/o, … -
Arboles M.C. José Andrés Vázquez FCC/BUAP
Capítulo 5 - b: Hilos. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Ejemplo de hilos: un applet Un.
El lenguaje de programación Java
Entrada / Salida. Java adopta de Unix el concepto de stream Un stream es un flujo de datos (secuencia de bytes) que va de una fuente a un destino. Desde.
El lenguaje de programación Java
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA SIETE GENERICOS Y COLECCIONES.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA SIETE GENERICOS Y COLECCIONES.
Tema 17: java.util Antonio J. Sierra.
Programación Orientada a Objetos Profesor : Ernesto Eduardo Vivanco Tapia.
El lenguaje de programación Java1 8. Colecciones e iteradores - interfaz Collection - clases ArrayList, LinkedList, HashSet, TreeSet - interfaz Map - clases.
Colecciones en JAVA José Luis Redondo García.
Programación orientada a objetos Capítulo 4 Agrupar objetos.
Algoritmos y Programación III 4. Colecciones, excepciones Carlos Fontela, 2006.
Tratamientos Secuenciales Generalizados II Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 19 Versión
Factorías e Iterables Introducción del concepto de patrón de diseño Construcción de tipos para recorridos con for extendido Fundamentos de Programación.
Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 4 Versión Diseño de tipos Igualdad, representación, código,
Implementación de Iterables Construcción de Iterables virtuales o basados en otros iterables Fundamentos de Programación Departamento de Lenguajes y Sistemas.
Tipos SortedSet, Map y SortedMap Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Unidad Didáctica 16.
Criterios de ordenación y Guava Comparator, Comparable y Ordering Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión.
Arrays, Cadenas y Vectores Tipos Genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 5 Versión
Colecciones Carlos Fontela, 2008.
Programación Orientada a Objetos
Transcripción de la presentación:

Colecciones

Interface Collection add(o) Añade un elemento nuevo clear() Elimina todos los elementos contains(o) Comprueba membresía IsEmpty() Comprueba si está vacío iterator() Devuelve un iterator remove(o) Elimina un elemento size() Número de elementos

Interface List add(i,o) Inserta o en la posición i add(o) Añade o al final get(i) Devuelve el i-ésimo elemento remove(i) Eliminia e i-ésimo elemento remove(o) Elimina el elemento o set(i,o) Remplaza el i-ésimo elemento con o

Interface Map Clear() Elimina todos las asociaciones containsKey(k) Si contiene una asoc. para k containsValue(v) Si contiene una asoc. para v SetentrySet() Conjunto de pares de valores clave get(k) Valor asociado con k isEmpty() Si está vacío keySet() Conjunto de claves put(k,v) Asociar v con k remove(k) Eliminar asoc. para k size() Número de pares values() Colección de valores

Colecciones concretas colección implementa descripción concreta HashSet Set hash table TreeSet SortedSet balanced binary tree ArrayList List resizable-array LinkedList List linked list Vector List resizable-array HashMap Map hash table TreeMap SortedMap balanced binary tree Hashtable Map hash table

Iterar sobre solecciones interface Iterator : interface Iterator { boolean hasNext(); Object next(); void remove(); } El método iterator() definido en la interface Collection: Iterator iterator()

Uso de Set Set set = new HashSet(); // instancia de un set concreto // ... set.add(obj); // inserta elementos int n = set.size(); // obtiene tamaño if (set.contains(obj)) {...} // verifica miembro // iterata a través del set Iterator iter = set.iterator(); while (iter.hasNext()) { Object e = iter.next(); // downcast e }

Uso de Map Map map = new HashMap(); // instancia un map concreto // ... map.put(key, val); // inserta par llave-valor // obteiene el valor asociado a la llave Object val = map.get(key); map.remove(key); // elimina par llave-valor if (map.containsValue(val)) { ... } if (map.containsKey(kay)) { ... } Set keys = map.keySet(); // obtiene el conjunto de llaves // iterata a través del conjunto de llaves Iterator iter = keys.iterator(); while (iter.hasNext()) { Key key = (Key) iter.next(); }

Cuenta palabras diferentes (I) import java.util.*; import java.io.*; public class CuentaPalabras { static public void main(String[] args) { HashSet words = new HashSet(); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String delim = " \t\n.,:;?!-/()[]\"\'"; String line; int count = 0;

Cuenta palabras diferentes (II) try { while ((line = in.readLine()) != null) { StringTokenizer st = new StringTokenizer(line, delim); while (st.hasMoreTokens()) { count++; words.add(st.nextToken().toLowerCase()); } } catch (IOException e) {} System.out.println("Numero total de palabras: " + count); System.out.println("Numero de palabras diferentes : " + words.size());

Frecuencia Palabras (I) static class Count { Count(String word, int i) { this.word = word; this.i = i; } String word; int i;

Frecuencia Palabras (II) import java.util.*; import java.io.*; public class FrecuenciaPalabras { static public void main(String[] args) { HashMap words = new HashMap(); String delim = " \t\n.,:;?!-/()[]\"\'"; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String line, word; Count count;

Frecuencia Palabras (III) try { while ((line = in.readLine()) != null) { StringTokenizer st = new StringTokenizer(line, delim); while (st.hasMoreTokens()) { word = st.nextToken().toLowerCase(); count = (Count) words.get(word); if (count == null) { words.put(word, new Count(word, 1)); } else { count.i++; } } catch (IOException e) {}

Frecuencia Palabras (IV) Set set = words.entrySet(); Iterator iter = set.iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); word = (String) entry.getKey(); count = (Count) entry.getValue(); System.out.println(word + (word.length() < 8 ? "\t\t" : "\t") + count.i); }

Orden y ordenamiento Hay dos formas de definir orden entre objetos. Cada clase puede definir un orden natural entre sus instancias implementando la interface Comparable. int compareTo(Object o) Un orden arbitrario entre diferentes objetos se puede definir por comparadores, clases que implementan la interface Comparator. int compare(Object o1, Object o2)

Frecuencia Palabras2 public class FrecuenciaPalabras2 { static public void main(String[] args) { TreeMap words = new TreeMap(); .... < igual a FrecuenciaPalabras> }

Orden definido por el usuario Orden alfabético inverso de cadenas: public class StringComparator implements Comparator { public int compare(Object o1, Object o2) { if (o1 != null && o2 != null && o1 instanceof String && o2 instanceof String) { String s1 = (String) o1; String s2 = (String) o2; return - (s1.compareTo(s2)); } else { return 0; }

Frecuencia Palabras2_1 public class FrecuenciaPalabras2_1 { static public void main(String[] args) { TreeMap words = new TreeMap(new StringComparator( )); .... < igual a FrecuenciaPalabras2> }

Ordenamiento static class CountComparator implements Comparator { public int compare(Object o1, Object o2) { if (o1 != null && o2 != null && o1 instanceof Count && o2 instanceof Count) { Count c1 = (Count) o1; Count c2 = (Count) o2; return (c2.i - c1.i); } else { return 0; }

Frecuencia Palabras3 public class FrecuenciaPalabras3{ static public void main(String[ ] args) { < igual a FrecuenciaPalabras2> List list = new ArrayList(words.values()); Collections.sort(list, new CountComparator()); Iterator iter = list.iterator(); while (iter.hasNext()) { count = (Count) iter.next(); word = count.word; System.out.println(word + (word.length() < 8 ? "\t\t" : "\t") + count.i); }