SlideShare una empresa de Scribd logo
1 de 20
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 = " tn.,:;?!-/()[]"'";
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 = " tn.,:;?!-/()[]"'";
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 ? "tt" : "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 ? "tt" : "t") + count.i);
}
}
}

Más contenido relacionado

Similar a ejercicios de programacion java orienta a objetos

Similar a ejercicios de programacion java orienta a objetos (20)

Taller 1 6
Taller 1 6Taller 1 6
Taller 1 6
 
Trabajo de consulta
Trabajo de consultaTrabajo de consulta
Trabajo de consulta
 
Introducción a Scala
Introducción a ScalaIntroducción a Scala
Introducción a Scala
 
Pf con scala
Pf con scalaPf con scala
Pf con scala
 
Declaración y creación de un arraylist
Declaración y creación de un arraylistDeclaración y creación de un arraylist
Declaración y creación de un arraylist
 
Vector
Vector Vector
Vector
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
 
Biblioteca java.util por gio
Biblioteca java.util por gioBiblioteca java.util por gio
Biblioteca java.util por gio
 
P2C2 Introducción a JEE5
P2C2 Introducción a JEE5P2C2 Introducción a JEE5
P2C2 Introducción a JEE5
 
Tema 4 clases_y_objetos
Tema 4 clases_y_objetosTema 4 clases_y_objetos
Tema 4 clases_y_objetos
 
Unidad iii pilas y colas
Unidad iii pilas y colasUnidad iii pilas y colas
Unidad iii pilas y colas
 
12 conjuntos mapas1t2018
12 conjuntos mapas1t201812 conjuntos mapas1t2018
12 conjuntos mapas1t2018
 
Mapas y Diccionarios - Colecciones Parametrizadas
Mapas y Diccionarios - Colecciones ParametrizadasMapas y Diccionarios - Colecciones Parametrizadas
Mapas y Diccionarios - Colecciones Parametrizadas
 
Java clases dictadas
Java clases dictadasJava clases dictadas
Java clases dictadas
 
Programación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en javaProgramación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en java
 
Arrays unidimensionales
Arrays unidimensionalesArrays unidimensionales
Arrays unidimensionales
 
Awt
AwtAwt
Awt
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Practicas
PracticasPracticas
Practicas
 

Más de MiguelAmc

PLATAFORMAS EN LA NUBE para respaldo de archivos y trabajos
PLATAFORMAS EN LA NUBE para respaldo de archivos y  trabajosPLATAFORMAS EN LA NUBE para respaldo de archivos y  trabajos
PLATAFORMAS EN LA NUBE para respaldo de archivos y trabajosMiguelAmc
 
MACROS EN EXCEL intermedio para estudiantes .pptx
MACROS EN EXCEL intermedio para estudiantes .pptxMACROS EN EXCEL intermedio para estudiantes .pptx
MACROS EN EXCEL intermedio para estudiantes .pptxMiguelAmc
 
1 DIAPOSITIVASgeodesia.pptx
1 DIAPOSITIVASgeodesia.pptx1 DIAPOSITIVASgeodesia.pptx
1 DIAPOSITIVASgeodesia.pptxMiguelAmc
 
Plantilla-Powerpoint-de-Topografia.pptx
Plantilla-Powerpoint-de-Topografia.pptxPlantilla-Powerpoint-de-Topografia.pptx
Plantilla-Powerpoint-de-Topografia.pptxMiguelAmc
 
windows10-151116174220-lva1-app6892.pdf
windows10-151116174220-lva1-app6892.pdfwindows10-151116174220-lva1-app6892.pdf
windows10-151116174220-lva1-app6892.pdfMiguelAmc
 
guia de software hardware y teclado.pptx
guia de software hardware y teclado.pptxguia de software hardware y teclado.pptx
guia de software hardware y teclado.pptxMiguelAmc
 
windows 10 guia.pptx
windows 10 guia.pptxwindows 10 guia.pptx
windows 10 guia.pptxMiguelAmc
 
lenguajejava.pptx
lenguajejava.pptxlenguajejava.pptx
lenguajejava.pptxMiguelAmc
 

Más de MiguelAmc (8)

PLATAFORMAS EN LA NUBE para respaldo de archivos y trabajos
PLATAFORMAS EN LA NUBE para respaldo de archivos y  trabajosPLATAFORMAS EN LA NUBE para respaldo de archivos y  trabajos
PLATAFORMAS EN LA NUBE para respaldo de archivos y trabajos
 
MACROS EN EXCEL intermedio para estudiantes .pptx
MACROS EN EXCEL intermedio para estudiantes .pptxMACROS EN EXCEL intermedio para estudiantes .pptx
MACROS EN EXCEL intermedio para estudiantes .pptx
 
1 DIAPOSITIVASgeodesia.pptx
1 DIAPOSITIVASgeodesia.pptx1 DIAPOSITIVASgeodesia.pptx
1 DIAPOSITIVASgeodesia.pptx
 
Plantilla-Powerpoint-de-Topografia.pptx
Plantilla-Powerpoint-de-Topografia.pptxPlantilla-Powerpoint-de-Topografia.pptx
Plantilla-Powerpoint-de-Topografia.pptx
 
windows10-151116174220-lva1-app6892.pdf
windows10-151116174220-lva1-app6892.pdfwindows10-151116174220-lva1-app6892.pdf
windows10-151116174220-lva1-app6892.pdf
 
guia de software hardware y teclado.pptx
guia de software hardware y teclado.pptxguia de software hardware y teclado.pptx
guia de software hardware y teclado.pptx
 
windows 10 guia.pptx
windows 10 guia.pptxwindows 10 guia.pptx
windows 10 guia.pptx
 
lenguajejava.pptx
lenguajejava.pptxlenguajejava.pptx
lenguajejava.pptx
 

Último

Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
celula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicacelula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicaFlor Idalia Espinoza Ortega
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 

Último (20)

Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
celula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicacelula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamica
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 

ejercicios de programacion java orienta a objetos

  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. Iterar sobre solecciones interface Iterator : interface Iterator { boolean hasNext(); Object next(); void remove(); } El método iterator() definido en la interface Collection: Iterator iterator()
  • 7. 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 // ... }
  • 8. 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(); // ... }
  • 9. 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 = " tn.,:;?!-/()[]"'"; String line; int count = 0;
  • 10. 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()); } }
  • 11. Frecuencia Palabras (I) static class Count { Count(String word, int i) { this.word = word; this.i = i; } String word; int i; }
  • 12. Frecuencia Palabras (II) import java.util.*; import java.io.*; public class FrecuenciaPalabras { static public void main(String[] args) { HashMap words = new HashMap(); String delim = " tn.,:;?!-/()[]"'"; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String line, word; Count count;
  • 13. 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) {}
  • 14. 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 ? "tt" : "t") + count.i); } } }
  • 15. 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)
  • 16. Frecuencia Palabras2 public class FrecuenciaPalabras2 { static public void main(String[] args) { TreeMap words = new TreeMap(); .... < igual a FrecuenciaPalabras> } }
  • 17. 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; } } }
  • 18. Frecuencia Palabras2_1 public class FrecuenciaPalabras2_1 { static public void main(String[] args) { TreeMap words = new TreeMap(new StringComparator( )); .... < igual a FrecuenciaPalabras2> }
  • 19. 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; } } }
  • 20. 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 ? "tt" : "t") + count.i); } } }