Preguntas y respuestas de la entrevista de Java Collections [para principiantes y experimentados]
Publicado: 2020-12-16Si ha tratado con Java en su licenciatura o ha trabajado con Java, debe conocer bien el marco de Java Collection. En cuanto a los principiantes que acaban de comenzar su viaje de Java, el marco de la colección es una arquitectura unificada diseñada para almacenar y manipular un grupo (colección) de objetos.
Esencialmente, una "colección" representa un solo grupo de objetos. Una colección de Java incluye interfaces, clases (ArrayList, Vector, Stack y Hashtable, etc.) y algoritmos con una arquitectura lista para usar para almacenar y manejar datos.
En este artículo, echaremos un vistazo a las preguntas más frecuentes de las entrevistas de Java Collections. Hemos creado una lista de las preguntas fundamentales que suelen hacer las entrevistas al entrevistar a candidatos para perfiles de Java. Esto debería ayudarlo a comprender qué tipo de preguntas esperar en su próxima entrevista.
Colecciones de Java Preguntas y respuestas de la entrevista
1. ¿Cuál es la ventaja de usar el marco de colecciones?
Las colecciones de Java incluyen clases de colección tanto genéricas como simultáneas para operaciones seguras para subprocesos. Además, viene equipado con interfaces de bloqueo junto con sus implementaciones en paquetes concurrentes de Java. Aquí hay algunos beneficios del marco de colecciones de Java:
Facilita la reutilización e interoperabilidad del código.

El uso de clases de colección principales reduce sustancialmente el esfuerzo y el tiempo de desarrollo.
Las clases de colección enviadas con JDK reducen los esfuerzos necesarios para el mantenimiento del código.
2. Distinguir entre matriz y colección.
Aunque la matriz y la colección se utilizan para almacenar objetos y manipular datos, tienen algunas diferencias innatas:
- No puede aumentar o disminuir la longitud de una matriz de acuerdo con sus requisitos de tiempo de ejecución: las matrices tienen un tamaño fijo. Sin embargo, puede modificar el tamaño de una colección de acuerdo con sus necesidades de escalado.
- Una matriz solo puede almacenar objetos homogéneos (similares o iguales), mientras que una colección puede almacenar un grupo heterogéneo de objetos.
- Si bien las matrices no ofrecen métodos listos para usar (búsqueda, clasificación, inserción, etc.) para los requisitos del usuario, las colecciones siempre incluyen métodos listos para usar.
3. ¿Cuál es el papel de los genéricos en el marco de las colecciones?
Generics le permite especificar o definir el tipo de objetos que puede almacenar una colección. Si intenta agregar un elemento de un tipo diferente, Generics mostrará un error de tiempo de compilación. Por lo tanto, al mostrar un error durante la compilación, ayuda a evitar ClassCastException en tiempo de ejecución. Además, dado que Generics elimina la necesidad de usar la conversión y la función instanceof, hace que el código sea limpio y preciso.
4. Asigne un nombre a las interfaces del marco de colecciones.
Estas son las cinco interfaces principales en el marco de Collections:
Interfaz de colección : es la base de la jerarquía de la colección Java. La mayoría de las colecciones en Java se heredan de la interfaz de colecciones.
Interfaz de lista : es una matriz extendida que contiene elementos ordenados, junto con sus duplicados. Esta interfaz admite la búsqueda basada en índices. Entonces, puede acceder a cualquier elemento desde su índice. Se implementa usando diferentes clases como ArrayList, LinkedList, etc.
Establecer interfaz: es una clase de colección que no puede contener elementos duplicados. A diferencia de List, no admite la búsqueda basada en índices y no define ningún orden para los elementos. Set modela la abstracción de conjuntos matemáticos y se implementa mediante clases como HashSet, TreeSet, LinkedHashSet, etc.
Interfaz de mapa : es una estructura de datos bidimensional que almacena datos en pares clave-valor. Si bien la clave es un código hash único, el valor denota el elemento. Un mapa no puede tener claves/elementos duplicados.
Interfaz de cola: esta interfaz organiza el elemento en el enfoque Primero en entrar, primero en salir (FIFO). Por lo tanto, los elementos en la interfaz de la cola se eliminan desde el frente y se agregan desde el extremo posterior.
Lea también: Cómo codificar, compilar y ejecutar proyectos Java
5. ¿Cuándo debería anular el método equals() en Java?
Si bien la implementación inicial del método equals() verifica si dos objetos son similares, es necesario anular el método equals() si desea comparar los objetos en función de sus propiedades.
6. ¿Es beneficioso utilizar el archivo de propiedades?
Sí, el uso del archivo de propiedades en Java ofrece una gran ventaja: si cambia los valores en este archivo, se reflejará automáticamente, sin necesidad de volver a compilar la clase de Java. Como resultado, el archivo de propiedades se usa principalmente para almacenar información que puede cambiar (por ejemplo, nombre de usuario y contraseñas). Permite una fácil administración de una aplicación Java.
7. ¿Cuál es la función del iterador en el marco de la colección?
El iterador es una interfaz que viene en el paquete java.util. También conocido como Universal Java Cursor, el iterador ayuda a iterar una colección de objetos. El iterador le permite pasar una colección de objetos uno por uno y admite operaciones de LECTURA y ELIMINACIÓN. Es ampliamente utilizado ya que los nombres de los métodos Iterator se pueden implementar fácilmente.
8. ¿Cómo se pueden ordenar los objetos de la Colección?
En el marco de Collections, la ordenación generalmente se implementa mediante las interfaces Comparable y Comparator . Si usa el método Collections.sort(), ordenará los elementos según el orden natural especificado en el método compareTo(). Sin embargo, cuando usa el método Collections.sort(Comparator), ordenará los elementos de acuerdo con el método compare() de la interfaz Comparator.

Leer: Proyecto Java Swing
9. ¿Es posible convertir un ArrayList a Array y un Array a ArrayList?
Sí, es posible hacerlo. Puede convertir un Array en un ArrayList usando la función asList() de la clase Array. La sintaxis para esto es la siguiente:
Arreglos.asList(elemento)
Puede convertir un ArrayList en un Array usando la función toArray() de la clase ArrayList, así:
List_object.toArray(nueva Cadena[List_object.size()])
10. ¿Cómo invertir una Lista?
¿Cómo revertirás una ArrayList?
Puede revertir una ArrayList usando la función reverse() de la clase Collections. La sintaxis para esto es la siguiente:
public static void reverse (Colección c)
11. ¿Qué es "BlockingQueue"?
La interfaz BlockingQueue está presente en el paquete java.util.concurrent . Su objetivo principal es mejorar el control de flujo activando el bloqueo cada vez que un subproceso intenta quitar una cola vacía o poner en cola una cola llena existente. La interfaz BlockingQueue no acepta valores nulos y, si intenta insertar un valor nulo, mostrará una NullPointerException.
12. Explique “Cola de prioridad”.
Una cola de prioridad es un tipo de datos abstracto, como una cola estándar o una estructura de datos de pila. Sin embargo, en esta cola, cada elemento tiene una característica única llamada "prioridad". Dado que se basa en un montón de prioridad, Priority Queue sirve el elemento de alta prioridad antes que el elemento de baja prioridad, independientemente de su orden de inserción. En una cola de prioridad, los elementos se ordenan de acuerdo con el orden natural o mediante un comparador utilizado en el momento de la construcción de la cola (depende del constructor que utilice).
13. ¿Cómo almacena elementos la clase HashSet?
La clase HashSet es miembro del marco de Java Collections que hereda la clase AbstractSet e implementa la interfaz Set.
HashSet implementa un Hashtable tanto para crear como para almacenar una colección de elementos. Una Hashtable es una instancia de la clase HashMap que usa un mecanismo hash para almacenar datos dentro de un HashSet. Hashing se refiere a la técnica de convertir información en un valor único conocido como Código Hash. El código hash indexa los datos asociados con la clave única.
14. ¿Es posible agregar un elemento nulo en un TreeSet o HashSet?
Si bien puede agregar solo un elemento nulo en un HashSet, no puede hacerlo en un TreeSet porque usa un NavigableMap para almacenar los elementos. NavigableMap es un subtipo de SortedMap que no acepta ni admite valores nulos. Si inserta un elemento nulo en un TreeSet, activará una NullPointerException.
15. ¿Qué hace la función emptySet()?
En Java, Collections.emptySet() se usa para devolver el conjunto inmutable vacío eliminando todos los elementos nulos. Esta es la sintaxis para declarar un conjunto vacío():
public static final <T> Set<T> emptySet()
16. ¿Por qué la interfaz de mapa no amplía la interfaz de colección?
Mientras que la interfaz Map sigue una estructura de pares clave-valor, la interfaz Collection almacena una colección de objetos de manera estructurada con un mecanismo de acceso definido. Map no amplía la interfaz Collection porque la función add(E e) de la interfaz Collection no es compatible con el modelo de par clave-valor de la función put (clave K, valor V) de Map.
17. Asigne un nombre a las diferentes vistas de Colección extendidas por la interfaz de Mapa.
La interfaz Mapa ofrece tres vistas de pares clave-valor, a saber:
- Vista de conjunto de claves
- Vista de conjunto de valores
- Vista del conjunto de entrada
18. Enumere las funciones principales de Java Hashmap.
Las características fundamentales de Hashmap son:
- Puede almacenar los elementos formando pares clave-valor y recuperar el valor pasando la clave al método correcto.
- Muestra NoSuchElementException si no existe ningún elemento en el mapa.
- Almacena solo referencias a objetos, lo que hace imposible usar tipos de datos primitivos como double o int. En su lugar, puede usar una clase contenedora como Integer o Double.
Debe leer: Preguntas y respuestas de la entrevista de Java
19. Defina "Pila".

En Java, una pila denota un área designada de la memoria de una computadora que contiene variables temporales creadas por una función. Las variables se declaran, almacenan e inicializan durante el tiempo de ejecución en una pila.
20. Defina la "notación Big-O".
La notación Big-O define el rendimiento de un algoritmo en relación con el número de elementos en una estructura de datos. Las clases de colección son estructuras de datos y, por lo tanto, debe usar la notación Big-O para decidir qué implementación de colección usar en función de la memoria, el tiempo y el rendimiento.
Inscríbase en cursos de ingeniería de software de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.
Conclusión
Si está interesado en obtener más información sobre Java, desarrollo de software de pila completa, consulte el programa Executive PG de upGrad & IIIT-B en desarrollo de software de pila completa, que está diseñado para profesionales que trabajan y ofrece más de 500 horas de capacitación rigurosa, 9+ proyectos y asignaciones, estado de exalumno de IIIT-B, proyectos finales prácticos prácticos y asistencia laboral con las mejores empresas.
