JAVA 8
COLLECTIONS
Yenifer Barco Castrillón
Ing. Sistemas e informática
UPB
COLECCIONES
Las colecciones representan grupos de objetos, denominados
elementos. Podemos encontrar diversos tipos de colecciones, según si
sus elementos están ordenados, o si permitimos repetición de
elementos o no.
Las Colecciones de datos Es el tipo más genérico en cuanto a que se
refiere a cualquier tipo que contenga un grupo de elementos. Viene
definido por la interfaz Collection, de la cual heredará cada subtipo
específico. En esta interfaz encontramos una serie de métodos que nos
servirán para acceder a los elementos de cualquier colección de datos,
sea del tipo que sea
Las operaciones básicas de una collection entonces son:
add(T): Añade un elemento.
iterator(): Obtiene un “iterador” que permite recorrer la colección
visitando cada elemento una vez.
size(): Obtiene la cantidad de elementos que esta colección almacena.
contains(t): Pregunta si el elemento t ya está dentro de la colección.
clear(): Elimina todos los elementos de la colección.
isEmpty(): Indica si la colección está vacía (no tiene ningún
elemento).
toArray(): Nos devuelve la colección de elementos como un array de
objetos
Una capacidad de un objeto Collection es la de poder ser recorrido.
Como a este nivel no está definido un orden, la única manera es
proveyendo un iterador, mediante el método iterator(). Un iterador
es un objeto “paseador” que nos permite ir obteniendo todos los
objetos al ir invocando progresivamente su método next().
También, si la colección es modificable, podemos remover un
objeto durante el recorrido mediante el método remove() del
iterador.
El siguiente ejemplo recorre una colección de Integer borrando todos
los ceros:
NOVEDADES
Las novedades en el Java 8 Collections Framework son muchas e
incluyen expresiones lambda y streams como parte fundamental
de la renovación.
Sin embargo los cambios son mucho mayores y afectan a
prácticamente todos los rincones del framework . Vamos a ver un
par de situaciones que han sido simplificadas sobre manera a
través de expresiones lambda extendiendo la funcionalidad del
interface List.
REMOVEIF
Hconcreto. Lamentablemente
este tratamiento era muy
elemental.
Normalmente uno quiere
eliminar un elemento de la lista
o varios aplicando una
condición. A partir de Java 8
nos podemos apoyar en una
expresión lambda para hacerlo
usando el nuevo método
removeIf.
asta ahora podíamos utilizar el
método remove del interface
List para eliminar un elemento
SORT
El método sort que permite
utilizar una expresión lambda
y generar un Comparador para
ordenar la lista.
LAMBDAS
Nueva sintaxis del lenguaje que facilita la escritura de las clases internas
anónimas con un solo método, basadas en Interfaces Funcionales, por
ejemplo, los Listener. Su idea es reflejar la inyección de métodos.
También hay formas “cortas ” de escribir lambdas comunes:
Una lista de entradas separadas por comas, indicando el tipo de
datos, y un bloque que retorna la suma de ambos parámetros.
(int x, int y) -> { return x + y;}
Una lista de entradas separadas por comas, infiriendo el tipo de
datos y retorna la suma de ambos.
(x, y) -> x + y
Un único parámetro con el tipo de dato inferido, y retorna ese para
metro al cuadrado.
x -> x * x
Sin valores de entrada, retorna un valor.
() -> x
GRACIAS POR
SU ATENCIÓN

Java 8 collections

  • 1.
    JAVA 8 COLLECTIONS Yenifer BarcoCastrillón Ing. Sistemas e informática UPB
  • 2.
    COLECCIONES Las colecciones representangrupos de objetos, denominados elementos. Podemos encontrar diversos tipos de colecciones, según si sus elementos están ordenados, o si permitimos repetición de elementos o no. Las Colecciones de datos Es el tipo más genérico en cuanto a que se refiere a cualquier tipo que contenga un grupo de elementos. Viene definido por la interfaz Collection, de la cual heredará cada subtipo específico. En esta interfaz encontramos una serie de métodos que nos servirán para acceder a los elementos de cualquier colección de datos, sea del tipo que sea
  • 3.
    Las operaciones básicasde una collection entonces son: add(T): Añade un elemento. iterator(): Obtiene un “iterador” que permite recorrer la colección visitando cada elemento una vez. size(): Obtiene la cantidad de elementos que esta colección almacena. contains(t): Pregunta si el elemento t ya está dentro de la colección. clear(): Elimina todos los elementos de la colección. isEmpty(): Indica si la colección está vacía (no tiene ningún elemento). toArray(): Nos devuelve la colección de elementos como un array de objetos
  • 4.
    Una capacidad deun objeto Collection es la de poder ser recorrido. Como a este nivel no está definido un orden, la única manera es proveyendo un iterador, mediante el método iterator(). Un iterador es un objeto “paseador” que nos permite ir obteniendo todos los objetos al ir invocando progresivamente su método next(). También, si la colección es modificable, podemos remover un objeto durante el recorrido mediante el método remove() del iterador. El siguiente ejemplo recorre una colección de Integer borrando todos los ceros:
  • 5.
    NOVEDADES Las novedades enel Java 8 Collections Framework son muchas e incluyen expresiones lambda y streams como parte fundamental de la renovación. Sin embargo los cambios son mucho mayores y afectan a prácticamente todos los rincones del framework . Vamos a ver un par de situaciones que han sido simplificadas sobre manera a través de expresiones lambda extendiendo la funcionalidad del interface List.
  • 6.
    REMOVEIF Hconcreto. Lamentablemente este tratamientoera muy elemental. Normalmente uno quiere eliminar un elemento de la lista o varios aplicando una condición. A partir de Java 8 nos podemos apoyar en una expresión lambda para hacerlo usando el nuevo método removeIf. asta ahora podíamos utilizar el método remove del interface List para eliminar un elemento SORT El método sort que permite utilizar una expresión lambda y generar un Comparador para ordenar la lista.
  • 7.
    LAMBDAS Nueva sintaxis dellenguaje que facilita la escritura de las clases internas anónimas con un solo método, basadas en Interfaces Funcionales, por ejemplo, los Listener. Su idea es reflejar la inyección de métodos. También hay formas “cortas ” de escribir lambdas comunes:
  • 8.
    Una lista deentradas separadas por comas, indicando el tipo de datos, y un bloque que retorna la suma de ambos parámetros. (int x, int y) -> { return x + y;} Una lista de entradas separadas por comas, infiriendo el tipo de datos y retorna la suma de ambos. (x, y) -> x + y Un único parámetro con el tipo de dato inferido, y retorna ese para metro al cuadrado. x -> x * x Sin valores de entrada, retorna un valor. () -> x
  • 9.