KnowledgeCity

Java Avanzado: Colecciones

En estas lecciones verá el marco Colecciones en acción.

En estas lecciones verá el marco Colecciones en acción. El marco tiene estructuras de datos para adaptarse a cualquier problema de programación y, en muchos casos, varias para elegir, lo que le permite elegir el tipo de colección que funciones mejor. El marco de trabajo de las colecciones ha evolucionado con cada versión del lenguaje Java, y los recientes avances no han hecho más que catapultarlo. Exploraremos la clase de utilidad Colecciones para ver la maravillosa abundancia de funciones estáticas de ayuda disponibles para su uso. Muchas funciones y algoritmos están completamente desarrollados, y todo lo que necesita saber es dónde están y cómo usarlos. Demostraremos cómo resolver problemas de programación difíciles utilizando estos tipos de colección.

Exploraremos la escritura de algoritmos de ordenación personalizados y su aprovechamiento mediante la función Collection.sort(). Luego terminaremos viendo cómo crear una colección no modificable que se pueda compartir de forma segura en toda la base de código sin temor a que alguien borre o altere su contenido, convirtiéndolo efectivamente en una colección de solo lectura.

Objetivos de aprendizaje:

  • Describir el marco de las Colecciones
  • Reconocer métodos estáticos variados en la clase Colecciones
  • Identificar cómo se puede sobrecargar el comportamiento de ordenación
  • Comprender cómo crear una colección no modificable

Instructor: Scott Stanlick

Duración: 20m · 3 lecciones
Nivel: Advanced
Idioma: Español

Habilidades que obtendrás

Lista de matricesJava 11Java 7Java 8Marco de colecciones de JavaObjetos de datos Java

Lo que aprenderás

  • Describir el marco de Colecciones de Java y sus tipos de colecciones
  • Navegar la jerarquía de tipos de colecciones para elegir la colección con mejor desempeño para un problema
  • Usar los métodos auxiliares estáticos disponibles en la clase de utilidad Collections
  • Aplicar Collection.sort() con órdenes de clasificación natural y personalizada
  • Sobrecargar el comportamiento de clasificación escribiendo algoritmos de clasificación personalizada
  • Crear una colección inmodificable y de solo lectura que se pueda compartir de forma segura en una base de código

Puntos clave

  • El marco de Colecciones proporciona estructuras de datos para adaptarse a cualquier problema de programación, a menudo ofreciendo varias opciones para que pueda elegir el tipo de colección con mejor desempeño.
  • El marco de Colecciones ha evolucionado con cada lanzamiento del lenguaje Java, y los avances recientes lo han llevado aún más adelante.
  • La clase de utilidad Collections ofrece muchas funciones auxiliares estáticas y algoritmos completamente desarrollados que solo necesita ubicar y aplicar.
  • El comportamiento de clasificación se puede sobrecargar, permitiendo que algoritmos de clasificación personalizada se aprovechen a través de la función Collection.sort().
  • Una colección inmodificable se puede compartir de forma segura en una base de código sin temor a que sea borrada o manipulada, lo que efectivamente la hace de solo lectura.

Preguntas frecuentes

¿Qué cubre este curso?

Cubre el marco de Colecciones de Java en acción, incluyendo la jerarquía de tipos de colecciones, los métodos auxiliares estáticos en la clase de utilidad Collections, orden de clasificación natural y personalizado usando Collection.sort() y cómo crear colecciones inmodificables (de solo lectura).

¿Qué lecciones se incluyen?

El curso incluye tres lecciones: Jerarquía de Tipos de Colecciones, Métodos Auxiliares Estáticos y Orden de Clasificación Natural y Personalizado.

¿Qué habilidades ganaré de este curso?

Trabajará con el Marco de Colecciones de Java, ArrayList, Objetos de Datos Java y características en Java 7, Java 8 y Java 11.

¿Aprenderé cómo clasificar colecciones?

Sí. El curso explora escribir algoritmos de clasificación personalizada y aprovecharlos con la función Collection.sort(), cubriendo tanto orden de clasificación natural como personalizado.

¿Cómo puedo compartir de forma segura una colección sin que se modifique?

El curso demuestra cómo crear una colección inmodificable que se pueda compartir de forma segura en la base de código sin que nadie la borre o manipule su contenido, lo que efectivamente la hace de solo lectura.

Transcripción

Transcripción

Bienvenido de nuevo, Scott Stanley aquí. En estas lecciones, vamos a echar un vistazo en el marco de las colecciones, algunas funciones auxiliares estáticas que podemos usar para trabajar con estas colecciones, y luego vamos a echar un vistazo a lo natural y algoritmos de clasificación personalizados que podemos especificar. En esta lección, te mostraré el marco de las colecciones. Vemos que se compone de varios tipos interesantes. Lo primero que quiero llamar su atención es, vemos los cuadros naranjas aquí son los tipos de interfaz, y los cuadros azules son los tipos de clase. Como repaso, las interfaces especifican el qué, y las clases, las implementaciones de esas interfaces, determinan cómo, cómo funciona algo. para que podamos ver en la parte superior de la jerarquía del marco de recopilación, hay una interfaz de colección, que es el más genérico de todos. Y luego ves algunos más específicos. tipo de interfaces, listas, señales, conjuntos. Hay pilas, mapas, árboles, casi todo lo que podrías Hope for es parte de la jerarquía del marco de esta colección. Echemos un vistazo aquí a la prueba de colecciones. Bien, aquí vamos. El primer escenario de prueba que vemos es que estamos creando una nueva lista de arreglos. Lo estamos almacenando como el tipo genérico, refiriéndose a él genéricamente como el tipo de interfaz de lista. Y en este caso, estamos usando los genéricos. Y entonces esta va a ser una lista de tipos de números. Y vamos a agregar los primeros 50, así hasta 50 números primos. Así que dos, tres, cinco, siete, 11 hasta 47. Y luego probamos que tiene un tamaño de 15, que es el número de elementos que le agregamos. Así que esto requirió bastante escritura, como puede ver. Nos han dado un par de métodos abreviados de ayuda de hacer esto que nos hace la vida un poco más fácil. El primero de los cuales es en lugar de crear una nueva lista de matrices como lo hice aquí y empaquetarlo con esos números primos, vamos a tomar el enfoque abreviado, y solo usaremos las matrices como una lista y especifique los 15 números. Y más recientemente, han agregado algunos nuevos comportamientos a estos tipos de interfaz, sus métodos predeterminados en las interfaces. Así que tenemos una lista de, y del mismo modo, podemos especificar los primeros 50 números primos. Ahora una lista es una lista ordenada, lo que nos permite agregar un elemento en un índice particular. Así que si ven aquí tenemos uno, dos, cuatro, cinco y seis, y esos elementos se numeran cero, uno, dos, tres, cuatro, si quisiéramos insertar el número tres entre dos y cuatro, diríamos que quisiera agregar en el índice dos el número tres. Y lo que hace es deslizar todo hacia la derecha que estaba en ese lugar y más allá de ese lugar. Después de agregar el número tres en la segunda posición, cero, uno, dos, luego la lista será uno, dos, tres, cuatro, cinco, seis. Echamos un vistazo a una pequeña manera rápida de exprimir duplicados de una lista. Entonces una lista permite duplicados. De hecho, puedes ver que tenemos el número dos. duplicado varias veces, así como seis y siete. Y el tamaño de esta lista es 10. Si queremos exprimir los duplicados, podemos crear un nuevo conjunto hash. Los conjuntos no permiten duplicados. Entonces, lo que termina haciendo es reducir la lista a uno, dos, seis, siete, ocho. Aquí hay un ejemplo de un mapa. Tenemos un mapa de número a cadena, y el número aquí, tal vez un número de empleado. Así que el empleado número uno es Scott. El número dos es Jennifer. El número tres es Tyler. Y luego podemos verificar que mirando el mapa, esta colección, para la clave número tres, más bien, es Tyler. Ante el nuevo comportamiento puesto si está ausente, si quisiéramos poner un nuevo par clave-valor en un mapa, pero queríamos asegurarnos de no chocar con algo que ya puede haber estado en ese lugar, tuvimos que hacer esto. Si busco la clave número tres en este mapa, y no hay tal cosa, entonces lo haré pon el número tres emparejando con la cuerda Pedro. Y esto fue un poco klugey. La nueva forma de hacerlo ahora es simplemente decir poner si está ausente. Poner si está ausente. Y lo último que veremos aquí es la noción de un mapa hash débil. Un mapa hash débil es muy útil para guardar cachés, por ejemplo. La forma en que funciona un tipo de colección de mapa hash débil es la siguiente. Tan pronto como no haya más referencias a elementos dentro del mapa, luego los pares clave-valor en el mapa hash débil desaparecerá. Se purgarán automáticamente en un intervalo de recolección de basura. Entonces, si creamos a Chris y Eddie aquí, y ponerlos en esta colección, este mapa, que resulta ser una implementación de mapa hash débil, ponemos esos dos objetos en el mapa, y luego podemos afirmar que el tamaño del mapa es dos. Tan pronto como Chris se establece en nulo, Chris fue una de las parejas clave de valor que pusimos en este mapa hash débil, tan pronto como Chris se establece en nulo entonces ya no hay referencias a ese par clave-valor, y tan pronto como a medida que se produce una recolección de basura, Lo forcé aquí solo para poder probar el problema, tan pronto como ejecutemos una recolección de basura, y luego vamos y le preguntamos al mapa hash cuál es su tamaño, su tamaño ya no es dos, su tamaño ahora es uno, porque descartar la referencia a un par de valores clave reduce automáticamente el tamaño de ese mapa hash débil. En la próxima lección, vamos a echar un vistazo en algunas funciones estáticas, métodos auxiliares, que podemos aprovechar para aprovechar más de esta jerarquía de colecciones. Gracias por mirar y estad atentos.

Aprende sobre la marcha

Lleva tu aprendizaje a todas partes: la app de KnowledgeCity te permite ver las lecciones sobre la marcha.