30 top java collections interview questions with answers
Este tutorial incluye una lista de las preguntas de la entrevista sobre colecciones Java más frecuentes junto con respuestas y ejemplos para usted :
La API principal de Java es Java Collections Framework. Es compatible con el concepto fundamental de este lenguaje de programación. Si desea ser un desarrollador de Java, debe conocer bien estos conceptos básicos.
El área de colecciones de Java es extremadamente amplia y se pueden hacer muchas preguntas en una entrevista. Aquí hemos recopilado una lista de tantas preguntas relevantes que se le podrían hacer en su entrevista.
=> Consulte aquí para ver los tutoriales de capacitación de la A a la Z de Java aquí
Lo que vas a aprender:
Preguntas de la entrevista sobre colecciones de Java
P # 1) Explique el marco de colecciones de Java.
Responder: Java Collections Framework es una arquitectura que ayuda a administrar y almacenar un grupo de objetos. Con él, los desarrolladores pueden acceder a estructuras de datos empaquetadas y manipular datos con el uso de algoritmos.
La colección Java incluye la interfaz y las clases que admiten operaciones como buscar, eliminar, insertar, ordenar, etc. Junto con la interfaz y las clases, las Colecciones Java también incluyen algoritmos que ayudan en las manipulaciones.
P # 2) ¿Cuáles son los beneficios de las colecciones de Java?
Responder:
Los beneficios de las colecciones de Java son:
- En lugar de implementar nuestras clases de colección, utiliza las clases de colección principales, lo que reduce el esfuerzo requerido para su desarrollo.
- Utiliza las clases del marco de la colección que están bien probadas. Por lo tanto, se mejora la calidad de su código.
- Reduce el esfuerzo en el mantenimiento del código.
- Java Collection Framework es interoperable y reutilizable.
P # 3) ¿Qué sabe sobre la jerarquía de colecciones en Java?
Responder:
(imagen fuente )
P # 4) Cuéntenos sobre las interfaces básicas de la Colección Java.
Responder:
A continuación se enumeran las interfaces básicas de Java Collection Framework.
Colección: Es la base de la jerarquía de la Colección y representa sus elementos. Sin embargo, Java no proporciona ninguna aplicación directa de Collection. Además, la mayoría de las colecciones de Java provienen de esta interfaz.
Colocar: No puede contener elementos duplicados ya que modela la abstracción del conjunto matemático. Como sugiere el nombre, representa conjuntos, por ejemplo, una baraja de cartas.
Lista: Puede contener elementos duplicados y es una colección ordenada. Puede usar su índice para acceder a cualquier elemento en él. La lista es como un arreglo, una matriz, con una longitud dinámica.
Estas son algunas interfaces de Java Collection. Sin embargo, hay algunas interfaces más, como se muestra a continuación.
- Cola
- Dequeue
- Iterador
- Iterable
- SortedSet
- ListIterator.
P # 5) ¿Por qué la colección no amplía las interfaces serializables y clonables? ¿Interfaz?
Responder: La tarea de la interfaz de colección es especificar un grupo de objetos llamados elementos. La implementación de las Colecciones decide cómo se mantendrán los elementos. Por ejemplo, las implementaciones de List permiten elementos duplicados, pero las implementaciones de Set no.
Muchas implementaciones tienen un método para la clonación pública. Pero no es práctico incluirlo en todas las implementaciones de la Colección, ya que la Colección es abstracta y la implementación es lo único que importa.
El significado y las ramificaciones de la serialización y la clonación tienen sentido al trabajar con las implementaciones sustantivas. Por lo tanto, depende de la implementación real decidir si se puede serializar o clonar y cómo.
Más información = >> Interfaz de marcador en Java: serializable y clonable
Es por eso que inducir la serialización y la clonación en cada implementación no es muy flexible y es restrictivo.
P # 6) ¿Qué entiende por Iterador en Java Collection Framework?
Responder: En arreglos simples, podemos usar bucles para acceder a cada elemento. Cuando se necesita un enfoque similar para acceder a elementos en una colección, optamos por iteradores. Iterator es una construcción que se utiliza para acceder a elementos de los objetos Collection.
En Java, los iteradores son los objetos que implementan la interfaz 'Iterator' de Collection Framework. Esta interfaz es parte del paquete java.util.
Algunas de las características de los iteradores son:
- Los iteradores se utilizan para recorrer los objetos de la colección.
- Los iteradores se conocen como 'Universal Java Cursor' ya que podemos usar el mismo iterador para todas las colecciones.
- Los iteradores proporcionan operaciones de 'lectura' y 'eliminación' además de atravesar las colecciones.
- Como son universales y funcionan con todas las colecciones, los iteradores son más fáciles de implementar.
Lista de preguntas de la colección Java
P # 7) ¿Conoce los usos de List Interface?
(imagen fuente )
Responder: El propósito de la interfaz de lista es mantener el orden de inserción. También permite el almacenamiento de valores duplicados.
Ayuda en la manipulación suave de los elementos en función de su índice con los diversos métodos que contiene. ArrayList, Vector, Stack y LinkedList son las diversas clases que implementan la interfaz de lista.
P # 8) ¿Qué entiende acerca de ArrayList en Java?
Responder: La implementación de List Interface es ArrayList. Agrega o elimina elementos de la lista de forma dinámica y también proporciona la inserción de elementos junto con el acceso posicional. ArrayList permite valores duplicados y su tamaño puede aumentar dinámicamente si el número de elementos excede el tamaño inicial.
P # 9) ¿Cómo convertirá una matriz de cadenas en una ArrayList?
Responder: Esta es una pregunta de programación de nivel principiante que un entrevistador le pide para verificar su comprensión de la utilidad de Colección. Clases. La colección y las matrices son las dos clases de utilidad del marco de la colección que suelen interesar a los entrevistadores.
Las colecciones ofrecen determinadas funciones estáticas para realizar tareas específicas en tipos de colecciones. Mientras que Array tiene funciones de utilidad que realiza en tipos de arreglos.
|_+_|Tenga en cuenta que, además del tipo String, también puede utilizar otros tipos de Arrays para convertir a ArrayList.
Por ejemplo,
|_+_|Q # 10) Convierta Array en ArrayList y ArrayList en Array.
Responder: Para convertir ArrayList en Array, se usa el método toArray () List_object.toArray (nueva cadena (List_object.size ()))
Mientras que el método asList () se usa para convertir Array en ArrayList- Arrays.asList (elemento). AsList () es un método estático donde los objetos List son los parámetros.
P # 11) ¿Qué es una LinkedList y cuántos tipos de ella son compatibles con Java?
(imagen fuente )
Responder: LinkedList es una estructura de datos con una secuencia de enlaces donde cada enlace está conectado al siguiente enlace.
En Java se utilizan dos tipos de LinkedList para almacenar los elementos:
- Singly LinkedList: Aquí, cada nodo almacena los datos del nodo junto con una referencia o el puntero al siguiente nodo.
- Lista doblemente enlazada: Una LinkedList doble viene con referencias duales, una referencia al siguiente nodo y otra al nodo anterior.
P # 12) ¿Qué entiende por BlockingQueue?
Responder: En una cola simple, sabemos que cuando la cola está llena, no podemos insertar más elementos. En este caso, la cola simplemente proporciona un mensaje de que la cola está llena y sale. Un caso similar ocurre cuando la cola está vacía y no hay ningún elemento para eliminar en la cola.
En lugar de simplemente salir cuando no se puede insertar / quitar, ¿qué tal si esperamos hasta que podamos insertar o quitar el elemento?
Esto es respondido por una variación de cola llamada 'Cola de bloqueo' . En la cola de bloqueo, el bloqueo se activa durante las operaciones de poner y quitar de la cola siempre que la cola esté intentando poner en cola una cola completa o sacar una cola vacía.
El bloqueo se muestra en la siguiente figura.
BlockingQueue
Por lo tanto, durante la operación de puesta en cola, la cola de bloqueo esperará hasta que haya un espacio disponible para que un elemento se pueda insertar correctamente. De manera similar, en la operación de sacar de cola, la cola de bloqueo esperará hasta que un elemento esté disponible para la operación.
preguntas y respuestas de c ++
La cola de bloqueo implementa la interfaz 'BlockingQueue' que pertenece al paquete 'java.util.concurrent'. Debemos recordar que la interfaz BlockingQueue no permite valor nulo. Si encuentra un valor nulo, arroja NullPointerException.
P # 13) ¿Qué es una cola de prioridad en Java?
Responder: Una cola de prioridad en Java es similar a las estructuras de datos de pila o cola. Es un tipo de datos abstracto en Java y se implementa como una clase PriorityQueue en el paquete java.util. La cola de prioridad tiene una característica especial de que cada elemento de la cola de prioridad tiene una prioridad.
En una cola de prioridad, un elemento con mayor prioridad es el servidor antes del elemento con menor prioridad.
Todos los elementos de la cola de prioridad se ordenan según el orden natural. También podemos ordenar los elementos según un orden personalizado proporcionando un comparador al momento de crear un objeto de cola de prioridad.
Establecer preguntas de entrevista de interfaz
P # 14) ¿Cuál es el uso de Set Interface? Cuéntanos sobre las clases que implementan esto. Interfaz.
Responder: La interfaz de conjuntos se utiliza en la teoría de conjuntos para dar forma al conjunto matemático. Es similar a la interfaz List y, sin embargo, es un poco diferente. Set Interface no es una colección ordenada, por lo tanto, no existe un orden conservado cuando elimina o agrega los elementos.
Básicamente, no admite elementos duplicados, por lo que cada elemento de la interfaz de conjunto es único.
También permite comparaciones significativas de instancias de Set incluso cuando hay diferentes implementaciones. Además, establece un contrato más sustancial sobre las acciones de las operaciones de iguales y hashCode. Si dos ejemplos tienen los mismos elementos, entonces son iguales.
Por todas estas razones, Set Interface no tiene operaciones basadas en índices de elementos como List. Solo usa métodos heredados de Collection Interface. TreeSet, EnumSet, LinkedHashSet y HashSet implementan Set Interface.
P # 15) Quiero agregar un elemento nulo a HashSet y TreeSet. ¿Puedo?
Responder: No puede agregar ningún elemento nulo en TreeSet, ya que utiliza NavigableMap para el almacenamiento de elementos. Pero puede agregar solo uno a HashSet. SortedMap no permite claves nulas y NavigableMap es su subconjunto.
Es por eso que no puede agregar un elemento nulo a TreeSet, generará la NullPointerException cada vez que intente hacer eso.
P # 16) ¿Qué sabe sobre LinkedHashSet?
Responder: LinkedHashSet es la subclase de HashSet y hace cumplir la interfaz de conjunto. Como forma ordenada de HashSet, gestiona una Lista doblemente enlazada en todos los elementos que contiene. Conserva el orden de inserción y, al igual que su clase principal, solo lleva elementos únicos.
P # 17) Hable sobre la forma en que HashSet almacena elementos.
Responder: HashMap almacena los pares de valores-clave, pero las claves deben ser únicas. HashSet utiliza esta función de Map para asegurarse de que cada elemento sea único.
La declaración del mapa en HashSet aparece como se muestra a continuación:
|_+_|Los elementos almacenados en HashSet se almacenan como una clave en el Mapa y el objeto se presenta como un valor.
P # 18) Explique el método EmptySet ().
Responder: El método Emptyset () elimina los elementos nulos y devuelve el conjunto inmutable vacío. Este conjunto inmutable es serializable. La declaración del método de Emptyset () es- public static final Set emptySet ().
Preguntas de la entrevista sobre la interfaz del mapa
P # 19) Cuéntenos sobre la interfaz del mapa.
Responder: La interfaz de mapa está diseñada para búsquedas más rápidas y almacena los elementos en forma de pares de valores-clave. Como cada clave es única aquí, se conecta o se asigna a un solo valor. Estos pares de valores-clave se denominan entradas de mapa.
En esta interfaz, hay firmas de métodos para la recuperación, inserción y eliminación de elementos según la clave única. Esto lo convierte en una herramienta perfecta para mapear asociaciones clave-valor, como un diccionario.
P # 20) El mapa no amplía la interfaz de colección. ¿Por qué?
Responder: La interfaz de colección es la acumulación de objetos y estos objetos se almacenan estructuralmente con el mecanismo de acceso especificado. Mientras que la interfaz del mapa sigue la estructura de pares clave-valor. El método de adición de la interfaz de colección no es compatible con el método de colocación de la interfaz de mapa.
Es por eso que Map no extiende la interfaz de recopilación, pero aún así, es una parte importante del marco de recopilación de Java.
P # 21) ¿Cómo funciona HashMap en Java?
Responder: HashMap es una colección basada en Map y sus elementos consisten en pares clave-valor. Un HashMap generalmente se indica con, o. Se puede acceder a cada elemento del mapa de hash utilizando su clave.
Un HashMap funciona según el principio de 'Hashing'. En la técnica de hash, una cadena más larga se transforma en una cadena más pequeña mediante una 'función hash' que no es más que un algoritmo. La cadena más pequeña ayuda a una búsqueda más rápida y una indexación eficiente.
P # 22) Explique IdentityHashMap, WeakHashMap y ConcurrentHashMap.
Responder:
IdentityHashMap es muy parecido a HashMap. La diferencia es que al comparar elementos, IdentityHashMap usa igualdad de referencia. No es una implementación de mapa preferida y, aunque ejecuta la interfaz del mapa, no cumple con el contrato general del mapa intencionalmente.
Entonces, al comparar objetos, esto autoriza el uso del método de iguales. Está diseñado para su uso en casos excepcionales en los que se necesita una semántica de igualdad de referencias.
WeakHashMap La implementación almacena solo referencias débiles a sus claves. Esto permite la recolección de basura de un par clave-valor cuando no hay más referencias de sus claves fuera de WeakHashMap.
Se utiliza principalmente con aquellos objetos clave donde la prueba de identidad del objeto se lleva a cabo mediante sus métodos iguales utilizando el operador ==.
ConcurrentHashMap implementa interfaces ConcurrentMap y Serializable. Es la versión mejorada y actualizada de HashMap, ya que no funciona bien con el entorno multiproceso. En comparación con HashMap, tiene una tasa de rendimiento más alta.
P # 23) ¿Cuál es la calidad de una buena clave para HashMap?
Responder: Al comprender cómo funciona HashMap, es fácil saber que dependen principalmente de los métodos equals y hashCode de los objetos clave. Por lo tanto, una buena clave debe proporcionar el mismo código hash una y otra vez, independientemente de las veces que se obtenga.
De la misma manera, cuando se compara con el método equals, las mismas claves deben devolver verdadero y diferentes claves deben devolver falso. Es por eso que se dice que el mejor candidato para las claves HashMap son las clases inmutables.
P # 24) ¿Cuándo se puede utilizar TreeMap?
(imagen fuente )
Responder: TreeMap, como una forma especial de HashMap, mantiene el orden de las claves por defecto 'orden natural', como algo que falta en HashMap. Puedes usarlo para ordenar objetos con alguna clave.
Por ejemplo, si desea implementar e imprimir un diccionario en orden alfabético, puede usar TreeMap junto con TreeSet. Se ordenará automáticamente. Por supuesto, también podría haberlo hecho manualmente, pero el trabajo se hará de manera más eficiente con el uso de TreeMap. También puede usarlo si el acceso aleatorio es vital para usted.
Diferencia entre preguntas
P # 25) ¿Cuál es la diferencia entre colección y colecciones?
Responder:
Colección | Colecciones |
---|---|
No podemos usar ListIterator para atravesar un conjunto. | ListIterator puede atravesar List en cualquier dirección. |
Es una interfaz. | Es clase. |
La colección representa un grupo de objetos como una sola entidad. | Las colecciones definen diferentes métodos de utilidad para los objetos de colección. |
Es la interfaz raíz de Collection Framework. | Las colecciones son una clase de utilidad. |
Deriva las estructuras de datos de Collection Framework. | Las colecciones contienen muchos métodos estáticos diferentes para ayudar a manipular la estructura de datos. |
P # 26) ¿En qué se diferencia Array de ArrayList?
Responder:
Las diferencias entre Array y ArrayList se indican a continuación:
Formación | Lista de arreglo |
---|---|
La matriz es una clase fuertemente tipada. | ArrayList es una clase vagamente escrita. |
La matriz no se puede cambiar de tamaño dinámicamente, su dimensión es estática. | ArrayList se puede cambiar de tamaño dinámicamente. |
Una matriz no necesita encajonar y desempaquetar elementos. | ArrayList necesita encajonar y desempaquetar elementos. |
P # 27) Diferenciar entre ArrayList y LinkedList.
Responder:
Lista de arreglo | Lista enlazada |
---|---|
ArrayList utiliza la matriz dinámica internamente para almacenar elementos. | LinkedList implementa la lista doblemente enlazada. |
La manipulación de elementos de ArrayList es bastante lenta. | LinkedList manipula sus elementos mucho más rápido. |
ArrayList puede actuar únicamente como una lista. | LinkedList puede actuar tanto como lista como como cola. |
Útil para almacenar y acceder a datos. | Útil para manipular datos. |
P # 28) ¿En qué se diferencia Iterable de Iterator?
Responder:
Iterable | Iterador |
---|---|
Es la interfaz del paquete Java.lang. | Es la interfaz del paquete Java.util. |
Produce solo un método abstracto conocido como Iterador. | Viene con dos métodos abstractos: hasNext y next. |
Representa una serie de elementos que se pueden atravesar. | Significa objetos con estado de iteración. |
P # 29) Indique las diferencias entre Set y List.
Responder:
Colocar | Lista |
---|---|
Establecer implementos Establecer interfaz. | La lista implementa la interfaz List. |
Conjunto es un conjunto desordenado de elementos. | La lista es un conjunto ordenado de elementos. |
El conjunto no mantiene el orden de los elementos durante la inserción. | La lista conserva el orden de los elementos durante la inserción. |
El conjunto no permite valores duplicados. | La lista permite valores duplicados. |
El conjunto no contiene ninguna clase heredada. | La lista contiene Vector, una clase heredada. |
El conjunto permite solo un valor nulo. | No hay restricciones sobre el número de valores nulos en List. |
P # 30) ¿Cuál es la diferencia entre Queue y Stack?
Responder:
Cola | Apilar |
---|---|
Queue funciona según el principio del enfoque primero en entrar, primero en salir (FIFO). | La pila funciona sobre la base del último en entrar, primero en salir (LIFO). |
La inserción y eliminación en la cola se realizan en diferentes extremos. | La inserción y eliminación se realizan desde el mismo extremo llamado la parte superior de la pila. |
Enqueue es el nombre de Insertion y dequeue es la eliminación de elementos. | Push es inserción y Pop es la eliminación de elementos en Stack. |
Tiene dos punteros: uno al primer elemento de la lista (al frente) y otro al último (al final). | Solo tiene un puntero apuntando al elemento superior. |
P # 31) ¿En qué se diferencian SinglyLinkedList y DoublyLinkedList entre sí?
Responder:
Lista individualmente vinculada | Lista doblemente vinculada |
---|---|
Cada nodo de la lista enlazada individualmente consta de un dato y un puntero al siguiente nodo. | Una lista doblemente vinculada consta de datos, un puntero al siguiente nodo y un puntero al nodo anterior. |
La lista enlazada individualmente se puede recorrer con el siguiente puntero. | Se puede recorrer una lista doblemente enlazada utilizando el puntero anterior y siguiente. |
La lista de enlaces simples ocupa menos espacio en comparación con una lista de enlaces dobles. | La lista doblemente enlazada ocupa mucho espacio en la memoria. |
El acceso al elemento no es muy eficiente. | El acceso a los elementos es eficiente. |
P # 32) ¿En qué se diferencia HashMap de HashTable?
Responder:
HashMap | Tabla de picadillo |
---|---|
HashMap hereda la clase AbstractMap | HashTable hereda la clase Dictionary. |
HashMap no está sincronizado. | HashTable está sincronizado. |
HashMap permite múltiples valores nulos pero solo una clave nula. | HashTable no permite un valor o clave nulos. |
HashMap es más rápido. | HashTable es más lento que HashMap. |
HashMap puede ser atravesado por Iterator. | HashTable no se puede atravesar utilizando iterador o enumerador. |
P # 33) Enumere la diferencia entre ArrayList y Vector.
Responder:
Lista de arreglo | Vector |
---|---|
ArrayList no está sincronizado. | El vector está sincronizado. |
ArrayList no es una clase heredada. | Vector es una clase heredada. |
ArrayList aumenta el tamaño a la mitad de ArrayList cuando se inserta un elemento más allá de su tamaño. | Vector aumenta su tamaño al doble cuando un elemento se inserta más allá de su tamaño. |
ArrayList no es seguro para subprocesos | Vector es seguro para subprocesos. |
P # 34) ¿En qué se diferencia FailFast de Failsafe?
Responder:
Fallar rapido | A prueba de fallos |
---|---|
Durante la iteración, no se permite la modificación de una colección. | Permite la modificación mientras se itera. |
Utiliza colección original para atravesar. | Utiliza una copia de la colección original. |
No se requiere memoria adicional. | Necesita memoria extra. |
Lanza ConcurrentModificationException. | No se lanza ninguna excepción. |
Conclusión
Estas preguntas de la entrevista de Colecciones Java le ayudarán a prepararse para la entrevista. Su preparación para la entrevista de Colecciones Java debe ser profunda y extensa, así que estudie estas preguntas y comprenda bien el concepto.
Estas preguntas no solo ponen a prueba sus conocimientos, sino también su presencia de ánimo.
=> Mire aquí la serie de capacitación simple de Java
Lectura recomendada
- Tutorial de JAVA para principiantes: más de 100 tutoriales prácticos en vídeo de Java
- Conceptos básicos de Java: sintaxis de Java, clase de Java y conceptos básicos de Java
- Preguntas y respuestas de la entrevista
- Preguntas y respuestas de la entrevista de prueba ETL
- Las 30 preguntas y respuestas principales de las entrevistas en HTML (LISTA 2021)
- Las 30+ preguntas y respuestas más populares de la entrevista sobre pepino
- Las 40 preguntas y respuestas principales de la entrevista de Java 8 (más importante)
- Las 30 preguntas y respuestas principales de la entrevista SAS