logo

34 Col·leccions Java Preguntes d'entrevista

A Java, les preguntes d'entrevista de col·lecció les fan més els entrevistadors. Aquí teniu la llista de les preguntes d'entrevistes de col·leccions més fetes amb respostes.


1) Què és el marc de col·lecció a Java?

Collection Framework és una combinació de classes i interfície, que s'utilitza per emmagatzemar i manipular les dades en forma d'objectes. Proporciona diverses classes com ara ArrayList, Vector, Stack i HashSet, etc. i interfícies com List, Queue, Set, etc. per a aquest propòsit.


2) Quines són les principals diferències entre la matriu i la col·lecció?

Array i Collection són una mica similars pel que fa a l'emmagatzematge de les referències dels objectes i la manipulació de les dades, però difereixen en molts aspectes. Les principals diferències entre la matriu i la col·lecció es defineixen a continuació:

  • Les matrius sempre tenen una mida fixa, és a dir, un usuari no pot augmentar o disminuir la longitud de la matriu segons els seus requisits o en temps d'execució, però a la col·lecció, la mida es pot canviar de forma dinàmica segons les necessitats.
  • Les matrius només poden emmagatzemar objectes de tipus homogeni o similar, però a Col·lecció es poden emmagatzemar objectes heterogenis.
  • Les matrius no poden proporcionar el ?ready made? mètodes per als requisits de l'usuari com ordenar, cercar, etc. però la Col·lecció inclou mètodes preparats per utilitzar.

3) Expliqueu diverses interfícies utilitzades al marc de la col·lecció?

El marc de col·lecció implementa diverses interfícies, la interfície de col·lecció i la interfície de mapa (java.util.Map) són les interfícies que s'utilitzen principalment de Java Collection Framework. A continuació es mostra la llista d'interfícies de Collection Framework:

1. Interfície de col·lecció: La col·lecció (java.util.Collection) és la interfície principal, i cada col·lecció ha d'implementar aquesta interfície.

Sintaxi:

 public interface Collectionextends Iterable 

On representa que aquesta interfície és de tipus genèric

2. Interfície de llista: La interfície de llista amplia la interfície de col·lecció i és una col·lecció ordenada d'objectes. Conté elements duplicats. També permet l'accés aleatori d'elements.

Sintaxi:

 public interface List extends Collection 

3. Estableix la interfície: La interfície Set (java.util.Set) és una col·lecció que no pot contenir elements duplicats. Només pot incloure mètodes heretats de la interfície de col·lecció

Sintaxi:

 public interface Set extends Collection 

Interfície de cua: La interfície de la cua (java.util.Queue) defineix l'estructura de dades de la cua, que emmagatzema els elements en forma FIFO (primer en entrar, primer en sortir).

Sintaxi:

 public interface Queue extends Collection 

4. Interfície de retirada de la cua: és una cua de dos extrems. Permet la inserció i l'eliminació d'elements dels dos extrems. Implanta les propietats de Stack i queue perquè pugui realitzar operacions de cua LIFO (Last in first out) i FIFO (first in first out).

Sintaxi:

 public interface Dequeue extends Queue 

5. Interfície del mapa: Un mapa (java.util.Map) representa una clau, un parell de valors d'emmagatzematge d'elements. La interfície de mapa no implementa la interfície de col·lecció. Només pot contenir una clau única però pot tenir elements duplicats. Hi ha dues interfícies que implementen Map en java que són la interfície de mapa i el mapa ordenat.

estats als EUA

4) Quina diferència hi ha entre ArrayList i Vector?

No.ArrayListVector
1)ArrayList no està sincronitzat.El vector està sincronitzat.
2)ArrayList no és una classe heretada.Vector és una classe heretada.
3)ArrayList augmenta la seva mida en un 50% de la mida de la matriu.Vector augmenta la seva mida duplicant la mida de la matriu.
4)ArrayList no és ?segur de fils? ja que no està sincronitzat.La llista de vectors és ?segura per a fils? ja que tots els mètodes estan sincronitzats.

5) Quina diferència hi ha entre ArrayList i LinkedList?

No.ArrayListLinkedList
1)ArrayList utilitza una matriu dinàmica.LinkedList utilitza una llista doblement enllaçada.
2)ArrayList no és eficient per a la manipulació perquè se'n requereix massa.LinkedList és eficient per a la manipulació.
3)ArrayList és millor per emmagatzemar i obtenir dades.LinkedList és millor per manipular dades.
4)ArrayList proporciona accés aleatori.LinkedList no proporciona accés aleatori.
5)ArrayList ocupa menys memòria ja que només emmagatzema l'objecteLinkedList ocupa més memòria, ja que emmagatzema l'objecte així com l'adreça d'aquest objecte.

6) Quina diferència hi ha entre Iterator i ListIterator?

Iterator només travessa els elements en direcció cap endavant, mentre que ListIterator travessa els elements en direcció cap endavant i cap enrere.

No.IteradorListIterator
1)L'iterador només travessa els elements en direcció cap endavant.ListIterator travessa els elements en direccions cap enrere i cap endavant.
2)L'iterador es pot utilitzar a Llista, Conjunt i Cua.ListIterator només es pot utilitzar a List.
3)L'iterador només pot realitzar l'operació d'eliminació mentre recorre la col·lecció.ListIterator pot realitzar ?afegir? ?eliminar,? i ?set? funcionament mentre recorre la col·lecció.

7) Quina diferència hi ha entre iterador i enumeració?

No.IteradorEnumeració
1)L'iterador pot travessar elements heretats i no heretats.L'enumeració només pot travessar elements heretats.
2)L'iterador és ràpid de fallar.L'enumeració no és ràpida.
3)L'iterador és més lent que l'enumeració.L'enumeració és més ràpida que l'iterador.
4)L'iterador pot realitzar l'operació d'eliminació mentre recorre la col·lecció.L'enumeració només pot realitzar operacions de travessa a la col·lecció.

8) Quina diferència hi ha entre List i Set?

Tant la llista com la configuració amplien la interfície de la col·lecció. Tanmateix, hi ha algunes diferències entre ambdues que s'enumeren a continuació.

  • La llista pot contenir elements duplicats, mentre que el conjunt inclou elements únics.
  • La llista és una col·lecció ordenada que manté l'ordre d'inserció, mentre que Set és una col·lecció no ordenada que no conserva l'ordre d'inserció.
  • La interfície de llista conté una única classe heretada que és la classe Vector, mentre que la interfície Set no té cap classe heretada.
  • La interfície de llista pot permetre n nombre de valors nuls, mentre que la interfície Set només permet un únic valor nul.

9) Quina diferència hi ha entre HashSet i TreeSet?

El HashSet i el TreeSet, ambdues classes, implementen la interfície Set. Les diferències entre tots dos s'enumeren a continuació.

  • HashSet no manté cap ordre mentre que TreeSet manté un ordre ascendent.
  • HashSet impedit per una taula hash mentre que TreeSet implementat per una estructura d'arbre.
  • HashSet funciona més ràpid que TreeSet.
  • HashSet està recolzat per HashMap mentre que TreeSet està recolzat per TreeMap.

10) Quina diferència hi ha entre Set i Map?

Les diferències entre el conjunt i el mapa es mostren a continuació.

  • El conjunt només conté valors, mentre que el mapa conté la clau i els valors.
  • El conjunt conté valors únics, mentre que el mapa pot contenir claus úniques amb valors duplicats.
  • El conjunt conté un nombre únic de valors nuls, mentre que Map pot incloure una única clau nul·la amb n nombre de valors nuls.

11) Quina diferència hi ha entre HashSet i HashMap?

Les diferències entre HashSet i HashMap s'enumeren a continuació.

  • HashSet només conté valors, mentre que HashMap inclou l'entrada (clau, valor). HashSet es pot iterar, però HashMap s'ha de convertir en Set per repetir.
  • HashSet implementa la interfície Set mentre que HashMap implementa la interfície Map
  • HashSet no pot tenir cap valor duplicat, mentre que HashMap pot contenir valors duplicats amb claus úniques.
  • HashSet conté l'únic nombre de valors nuls, mentre que HashMap pot contenir una única clau nul·la amb n nombre de valors nuls.

12) Quina diferència hi ha entre HashMap i TreeMap?

Les diferències entre HashMap i TreeMap es donen a continuació.

  • HashMap no manté cap ordre, però TreeMap manté un ordre ascendent.
  • HashMap s'implementa mitjançant una taula hash mentre que TreeMap s'implementa mitjançant una estructura d'arbre.
  • HashMap es pot ordenar per clau o valor, mentre que TreeMap es pot ordenar per clau.
  • HashMap pot contenir una clau nul·la amb diversos valors nulls, mentre que TreeMap no pot contenir una clau nul·la, però pot tenir diversos valors nuls.

13) Quina diferència hi ha entre HashMap i Hashtable?

No.HashMapTaula hash
1)HashMap no està sincronitzat.La taula hash està sincronitzada.
2)HashMap pot contenir una clau nul·la i diversos valors nuls.La taula hash no pot contenir cap clau nul·la ni valor nul.
3)HashMap no és ?segur de fils? de manera que és útil per a aplicacions sense fil.Hashtable és segur per a fils i es pot compartir entre diversos fils.
4)4) HashMap hereta la classe AbstractMapHashtable hereta la classe Dictionary.

14) Quina diferència hi ha entre Col·lecció i Col·leccions?

Les diferències entre la Col·lecció i les Col·leccions es detallen a continuació.

  • La col·lecció és una interfície mentre que les col·leccions és una classe.
  • La interfície de col·lecció proporciona la funcionalitat estàndard de l'estructura de dades per llista, conjunt i cua. Tanmateix, la classe Col·leccions és ordenar i sincronitzar els elements de la col·lecció.
  • La interfície Col·lecció proporciona els mètodes que es poden utilitzar per a l'estructura de dades, mentre que la classe Col·leccions proporciona els mètodes estàtics que es poden utilitzar per a diverses operacions en una col·lecció.

15) Quina diferència hi ha entre Comparable i Comparator?

No.ComparableComparador
1)Comparable només proporciona un tipus de seqüència.El comparador proporciona diversos tipus de seqüències.
2)Proporciona un mètode anomenat compareTo().Proporciona un mètode anomenat compare().
3)Es troba al paquet java.lang.Es troba al paquet java.util.
4)Si implementem la interfície Comparable, es modifica la classe real.La classe real no es modifica.

16) Què entens per BlockingQueue?

BlockingQueue és una interfície que amplia la interfície de la cua. Proporciona concurrència en les operacions com la recuperació, la inserció, la supressió. Durant la recuperació de qualsevol element, s'espera que la cua no estigui buida. Mentre emmagatzema els elements, espera l'espai disponible. BlockingQueue no pot contenir elements nuls i la implementació de BlockingQueue és segura per a fils.

Sintaxi:

 public interface BlockingQueue extends Queue 

17) Quin és l'avantatge del fitxer de propietats?

Si canvieu el valor al fitxer de propietats, no cal que recompileu la classe java. Per tant, facilita la gestió de l'aplicació. S'utilitza per emmagatzemar informació que s'ha de canviar amb freqüència. Considereu l'exemple següent.

 import java.util.*; import java.io.*; public class Test { public static void main(String[] args)throws Exception{ FileReader reader=new FileReader('db.properties'); Properties p=new Properties(); p.load(reader); System.out.println(p.getProperty('user')); System.out.println(p.getProperty('password')); } } 

Sortida

 system oracle 

18) Què fa el mètode hashCode()?

El mètode hashCode() retorna un valor de codi hash (un nombre enter).

El mètode hashCode() retorna el mateix nombre sencer si dues claus (cridant al mètode equals()) són idèntiques.

'abc' està en números'

Tanmateix, és possible que dos números de codi hash puguin tenir claus diferents o iguals.

Si dos objectes no produeixen un resultat igual mitjançant el mètode equals(), aleshores el mètode hashcode() proporcionarà el resultat enter diferent per als dos objectes.


19) Per què substituïm el mètode equals()?

El mètode equals s'utilitza per comprovar si dos objectes són iguals o no. Cal anul·lar-lo si volem comprovar els objectes en funció de la propietat.

Per exemple, Employee és una classe que té 3 membres de dades: identificació, nom i salari. No obstant això, volem comprovar la igualtat de l'objecte del treballador pel salari. Aleshores, hem d'anul·lar el mètode equals().


20) Com sincronitzar elements de llista, conjunt i mapa?

Sí, la classe Col·leccions proporciona mètodes per sincronitzar els elements de llista, conjunt o mapa:

Public static List synchronizedList(Llista l){}
Public static Conjunt synchronizedSet(Conjunt s){}
public static SortedSet synchronizedSortedSet(SortedSet s){}
Public static Map synchronizedMap (Mapa m){}
public static SortedMap synchronizedSortedMap(SortedMap m){}

21) Quin és l'avantatge de la col·lecció genèrica?

Hi ha tres avantatges principals d'utilitzar la col·lecció genèrica.

  • Si utilitzem la classe genèrica, no necessitem tipografia.
  • És segur de tipus i es verifica en temps de compilació.
  • Generic confirma l'estabilitat del codi fent que es detecti errors en temps de compilació.

22) Què és la col·lisió hash a Hashtable i com es gestiona a Java?

Dues claus diferents amb el mateix valor hash es coneixen com hash-collision. Es mantindran dues entrades separades en un únic bucket hash per evitar la col·lisió. Hi ha dues maneres d'evitar la col·lisió hash.

  • Encadenament separat
  • Obre Adreçament

23) Què és la classe de Diccionari?

La classe Dictionary ofereix la capacitat d'emmagatzemar parells clau-valor.


24) Quina és la mida predeterminada del factor de càrrega a la col·lecció basada en hashing?

La mida predeterminada del factor de càrrega és 0.75 . La capacitat per defecte es calcula com a capacitat inicial * factor de càrrega. Per exemple, 16 * 0,75 = 12. Per tant, 12 és la capacitat predeterminada de Map.


25) Què entens per fail-fast?

L'iterador en Java que llança immediatament ConcurrentmodificationException, si es produeix alguna modificació estructural, s'anomena iterador Fail-fast. L'iterador Fail-fats no requereix espai addicional a la memòria.


26) Quina diferència hi ha entre Array i ArrayList?

Les principals diferències entre Array i ArrayList es donen a continuació.

SNMatriuArrayList
1La matriu és de mida fixa, el que significa que no podem canviar la mida de la matriu segons les necessitats.ArrayList no és de la mida fixa, podem canviar la mida de forma dinàmica.
2Les matrius són de tipus estàtic.ArrayList és de mida dinàmica.
3Les matrius poden emmagatzemar tipus de dades primitius així com objectes.ArrayList no pot emmagatzemar els tipus de dades primitius, només pot emmagatzemar els objectes.

27) Quina diferència hi ha entre la longitud d'un Array i la mida de ArrayList?

La longitud d'una matriu es pot obtenir mitjançant la propietat de longitud, mentre que ArrayList no admet la propietat de longitud, però podem utilitzar el mètode size() per obtenir el nombre d'objectes de la llista.

Trobar la longitud de la matriu

 Int [] array = new int[4]; System.out.println('The size of the array is ' + array.length); 

Trobar la mida de la ArrayList

 ArrayList list=new ArrayList(); list.add('ankit');�� list.add('nippun'); System.out.println(list.size()); 

28) Com convertir ArrayList a Array i Array a ArrayList?

Podem convertir un Array a ArrayList utilitzant el mètode asList() de la classe Arrays. El mètode asList() és el mètode estàtic de la classe Arrays i accepta l'objecte List. Considereu la sintaxi següent:

 Arrays.asList(item) 

Podem convertir un ArrayList a Array mitjançant el mètode toArray() de la classe ArrayList. Considereu la sintaxi següent per convertir l'ArrayList a l'objecte List.

 List_object.toArray(new�String[List_object.size()]) 

29) Com fer que Java ArrayList sigui només de lectura?

Podem obtenir java ArrayList de només lectura cridant al mètode Collections.unmodifiableCollection(). Quan definim una ArrayList com a de només lectura, no podem realitzar cap modificació a la col·lecció mitjançant el mètode �add(), remove() o set().


30) Com eliminar els duplicats de ArrayList?

Hi ha dues maneres d'eliminar els duplicats de la ArrayList.

    Utilitzant HashSet:Mitjançant l'ús de HashSet podem eliminar l'element duplicat de la ArrayList, però llavors no conservarà l'ordre d'inserció.Utilitzant LinkedHashSet:També podem mantenir l'ordre d'inserció utilitzant LinkedHashSet en lloc de HashSet.

El procés per eliminar elements duplicats de ArrayList mitjançant el LinkedHashSet:

  • Copieu tots els elements de ArrayList a LinkedHashSet.
  • Buideu l'ArrayList mitjançant el mètode clear(), que eliminarà tots els elements de la llista.
  • Ara copieu tots els elements de LinkedHashset a ArrayList.

31) Com invertir ArrayList?

Per revertir una ArrayList, podem utilitzar el mètode reverse() de la classe Collections. Considereu l'exemple següent.

 import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; public class ReverseArrayList { public static void main(String[] args) { List list = new ArrayList(); list.add(10); list.add(50); list.add(30); Iterator i = list.iterator(); System.out.println('printing the list....'); while(i.hasNext()) { System.out.println(i.next()); } Iterator i2 = list.iterator(); Collections.reverse(list); System.out.println('printing list in reverse order....'); while(i2.hasNext()) { System.out.println(i2.next()); } } } 

Sortida

 printing the list.... 10 50 30 printing list in reverse order.... 30 50 10 

32) Com ordenar ArrayList en ordre descendent?

Per ordenar ArrayList en ordre descendent, podem utilitzar el mètode reverseOrder de la classe Collections. Considereu l'exemple següent.

 import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; public class ReverseArrayList { public static void main(String[] args) { List list = new ArrayList(); list.add(10); list.add(50); list.add(30); list.add(60); list.add(20); list.add(90); Iterator i = list.iterator(); System.out.println('printing the list....'); while(i.hasNext()) { System.out.println(i.next()); } Comparator cmp = Collections.reverseOrder(); Collections.sort(list,cmp); System.out.println('printing list in descending order....'); Iterator i2 = list.iterator(); while(i2.hasNext()) { System.out.println(i2.next()); } } } 

Sortida

 printing the list.... 10 50 30 60 20 90 printing list in descending order.... 90 60 50 30 20 10 

33) Com sincronitzar ArrayList?

Podem sincronitzar ArrayList de dues maneres.

  • Utilitzant el mètode Collections.synchronizedList().
  • Utilitzant CopyOnWriteArrayList

34) Quan utilitzar ArrayList i LinkedList?

Les llistes enllaçades són millors per a les operacions d'actualització, mentre que les llistes de matrius són millors per a les operacions de cerca.

és igual a java