Criterios de ordenación y Guava Comparator, Comparable y Ordering Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión.

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
Advertisements

DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN APLICACIONES MOVILES CON J2ME RMS Ing. Ronald Criollo.
ESTRUCTURA DE DATOS Unidad 01 RECURSIVIDAD.
Herencia en C#.
Lenguaje de programación Java
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Orientación a Objetos con Java SE
Igor Santos Grueiro. Muchos objetos tienen CLAVE.
El proceso de desarrollo de software
Conceptos más avanzados de Programación Orientada a Objetos Programación 2005 Licenciatura de Lingüística y Nuevas Tecnologías.
Algoritmos y Estructura de Datos
Curso de Java Estructura del Lenguaje
1.2 Sintaxis del lenguaje Java.
Encapsulamiento y Abstracción
Marzo 2007 Lenguajes Visuales Clase III.
Recursión Se dice que un método es recursivo si forma parte de sí mismo o se define en función de sí mismo. La recursión es un medio particularmente poderoso.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
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
Tema 6: Clases Antonio J. Sierra.
6. Herencia. Clases abstractas. Genericidad
Colecciones.
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.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
7. Interfaces Herencia múltiple Interfaces Comparable y Comparator

El lenguaje de programación Java
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Análisis de algoritmos
UNIDAD VI Recursos esenciales de Java LSC. Natalia Rodríguez Castellón.
Recursividad (2 clases) 1. Nivelación Funciones Menú Vectores String
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.
Unidad 2.1: INTRODUCCIÓN A LA ORIENTACIÓN A OBJETOS.
Detalles Generales sobre Java
Ing. Esp. Ricardo Cujar.  Lenguaje de programación orientado a objetos.  Desarrollado por Sun MicroSystems.  Independiente del Sistema Operativo gracias.
Listas. Utilización de un TAD Lista. Interfaz del TAD LISTA public interface Lista { void crearNodo (); /*Crea un nuevo nodo en el TadLista*/ int devolverClave.
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
Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos.
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.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
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,
Tema – 5 Construcciones condicionales Introducción En un programa es usual ejecutar unas instrucciones u otras en función de unas condiciones especificadas.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Asociación.
Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Fundamentos de Programación Departamento.
Implementación de Iterables Construcción de Iterables virtuales o basados en otros iterables Fundamentos de Programación Departamento de Lenguajes y Sistemas.
Las interfaces Predicate y Function Versión Unidad Didáctica 17 Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos.
This y static. This Normalmente, dentro del cuerpo de un método de un objeto se puede referir directamente a las variables miembros del objeto. Sin embargo,
Excepciones Diseño y manejo de excepciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 5 Versión
Tipos SortedSet, Map y SortedMap Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Unidad Didáctica 16.
Diseño de tipos Igualdad, representación, código, copia y relación de orden Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos.
Introducción al Lenguaje C (II) Cadenas de caracteres, archivos de cabecera, lectura y escritura Fundamentos de Programación Departamento de Lenguajes.
Tratamientos secuenciales I Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 8 Versión
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Iterables virtuales Concepto, Metodología de desarrollo y Ejemplos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión.
Concepto de Tipo y Subtipo Diseño e Implementación Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 10 Versión.
Tratamientos Secuenciales Generalizados I Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 18 Versión
Diseño de tipos: clase PolinomioEntero Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 8 Versión
Números enteros 1.Los números naturalesLos números naturales 2.Los números enterosLos números enteros 3.Operaciones con números enterosOperaciones con.
@ Angel Prieto BenitoApuntes de Matemáticas 3º ESO1 NÚMEROS Naturales y Enteros U.D. 1 * 3º ESO E.Ap.
Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Dependencia.
Arrays, Cadenas y Vectores Tipos Genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 5 Versión
Introducción a la Programación Orientada a Objetos (POO) Conceptos de clase, objeto e interfaz. Atributos y métodos Fundamentos de Programación Departamento.
GUICEG018EM31-A16V1 Generalidades de números reales EM-31.
Funciones y paso de parámetros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Unidad Didáctica 24.
Paso de parámetros Diseño de programas iterativos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 7 Versión.
Programación Orientada a Objetos
Transcripción de la presentación:

Criterios de ordenación y Guava Comparator, Comparable y Ordering Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 14

PR14: Criterios de Comparación y Ordering Índice  Criterio de orden natural: Comparable  Criterio de orden adicional: Comparator  Ordering

PR14: Criterios de Comparación y Ordering  comparaTo establece un orden natural para los objetos.  Debe coincidir en criterio con el método equals.  Valor entero devuelto:  Negativo si this es menor que o  Cero si this es igual a o  Positivo si this es mayor que o Comparable 3 package java.lang; public interface Comparable { int compareTo(T o); }

PR14: Criterios de Comparación y Ordering  compareTo:  Simetría: si el resultado de comparar un objeto con otro es cero, el resultado coincide a la inversa.  Transitividad: si el signo de comparar un objeto con otro coincide con el signo de comparar el segundo con un tercero, entonces también coincide con el signo de comparar el primero con el tercero.  equals/compareTo:  Si dos objetos son iguales, el resultado de su comparación será igual a cero, y viceversa Comparable: propiedades 4

PR14: Criterios de Comparación y Ordering Ejemplo 5 public interface Persona extends Comparable, Copiable { public String getNombre(); public String getApellidos(); public Integer getEdad(); …} public class PersonaImpl implements Persona { public int compareTo(Persona p){ int res=this.getApellidos().compareTo(p.getApellidos()); if (res==0) res=this.getNombre().compareTo(p.getNombre()); return res; }... Persona p1 = new PersonaImpl(“María”,“García”,20); Persona p2 = new PersonaImpl(“María”,“Zamorano”,20); if(p1.compareTo(p2)==0) mostrar(p1 + " y " + p2 + " no son iguales");...

PR14: Criterios de Comparación y Ordering  compare establece órdenes alternativos para los objetos.  Valor entero devuelto  Negativo si o1 es menor que o2  Cero si los objetos o1 y o2 son iguales  Positivo si o1 es mayor que o2  Es necesario implementar una nueva clase que implemente Comparator Comparator 6 package java.util; public interface Comparator { int compare(T o1, T o2); }

PR14: Criterios de Comparación y Ordering  Compare:  Simetría: si el resultado de comparar un objeto con otro es cero, el resultado coincide a la inversa  Transitividad: si el signo de comparar un objeto con otro coincide con el signo de comparar el segundo con un tercero, entonces también coincide con el signo de comparar el primero con el tercero  equals/compare:  Si dos objetos son iguales, el resultado de su comparación será igual a cero, y viceversa Comparator: propiedades 7

PR14: Criterios de Comparación y Ordering Ejemplo  Comparador de Persona por edad:  Ejemplo de uso: public class ComparadorPersonaEdad implements Comparator { public int compare(Persona o1, Persona o2){ return o1.getEdad().compareTo(o2.getEdad()); }... Persona p1 = new PersonaImpl(1,2); Persona p2 = new PersonaImpl(3,2); Comparator cmp = new ComparadorPersonaEdad (); if(cmp.compare(p1,p2)==0) mostrar(p1 + " y " + p2 + " tienen la misma edad");...

PR14: Criterios de Comparación y Ordering Ordering  Clase de la librería Guava  La librería se descarga de:

PR14: Criterios de Comparación y Ordering Ordering  Importar la librería:

PR14: Criterios de Comparación y Ordering Ordering  Importar la librería:

PR14: Criterios de Comparación y Ordering Ordering  Importar la librería:

PR14: Criterios de Comparación y Ordering Ordering  Importar la librería:

PR14: Criterios de Comparación y Ordering Ordering  El constructor de la clase Ordering es protegido.  Construcción de objetos de tipo Ordering a partir de 3 métodos estáticos:  from Comparator c = new ComparadorPorEdad(); Ordering ord1 = Ordering.from(c);  usingToString Ordering ord2 = Ordering.usingToString();  natural Ordering ord3 = Ordering.natural();

PR14: Criterios de Comparación y Ordering Ordering  Métodos:  static Ordering from(Comparator comparator) Devuelve un ordering para un comparator existente.OrderingfromComparator  static Ordering usingToString() Devuelve un ordering que compara objetos según el orden alfabético de la representación en cadena (toString) de los objetos del iterable.OrderingObjectusingToString  static Ordering natural() Devuelve un ordering en función del orden natural, es decir, del método compareTo.ComparableOrderingnatural  List sortedCopy(Iterable iterable) Devuelve una copia ordenada de un iterable dado. El orden del iterable depende del criterio de comparación asociado al objeto ordering que invoque este método.TListsortedCopyIterable  int binarySearch(List sortedList, T key) Devuelve la posición del element key en el iterable ordenado sortedList utilizando el algoritmo de búsqueda binaria.binarySearchListT  Ordering nullsFirst() Devuelve un ordering que trata iterables con elementos null, de manera que éstos se consideran menores al resto de objetos, si se ordena los elementos null quedarán al principio.TOrderingnullsFirst  Ordering nullsLast() Similar al anterior, pero los elementos null quedarán al final del iterable si este es ordenado.TOrderingnullsLast  E max(Iterable iterable) Devuelve el máximo del iterable de acuerdo con el criterio de ordenación asociado al objeto ordering que invoca este método.TmaxIterable  E min(Iterable iterable) Devuelve el mínimo del iterable de acuerdo con el criterio de ordenación asociado al objeto ordering que invoca este método.TminIterable