logo

34 Java Collections interviewspørgsmål

I Java stilles spørgsmål til samlingsinterview mest af interviewerne. Her er listen over de mest stillede samlinger interviewspørgsmål med svar.


1) Hvad er samlingsrammen i Java?

Collection Framework er en kombination af klasser og interface, som bruges til at lagre og manipulere data i form af objekter. Det giver forskellige klasser såsom ArrayList, Vector, Stack og HashSet osv. og grænseflader som List, Queue, Set osv. til dette formål.


2) Hvad er de vigtigste forskelle mellem array og samling?

Array og Collection er noget ens med hensyn til lagring af referencer for objekter og manipulation af data, men de adskiller sig på mange måder. De vigtigste forskelle mellem arrayet og samlingen er defineret nedenfor:

  • Arrays er altid af fast størrelse, dvs. en bruger kan ikke øge eller mindske længden af ​​arrayet i henhold til deres krav eller under kørsel, men I Collection kan størrelsen ændres dynamisk efter behov.
  • Arrays kan kun lagre homogene eller lignende objekter, men i Collection kan heterogene objekter gemmes.
  • Arrays kan ikke give den 'færdige'? metoder til brugerkrav som sortering, søgning osv. men Collection omfatter færdige metoder til brug.

3) Forklar forskellige grænseflader brugt i Collection framework?

Collection framework implementerer forskellige interfaces, Collection interface og Map interface (java.util.Map) er de primært anvendte interfaces i Java Collection Framework. Liste over grænseflader til Collection Framework er angivet nedenfor:

1. Indsamlingsgrænseflade: Samling (java.util.Collection) er den primære grænseflade, og hver samling skal implementere denne grænseflade.

Syntaks:

 public interface Collectionextends Iterable 

Hvor repræsenterer, at denne grænseflade er af generisk type

2. Listegrænseflade: Listegrænsefladen udvider samlingsgrænsefladen, og det er en ordnet samling af objekter. Den indeholder duplikerede elementer. Det giver også mulighed for tilfældig adgang til elementer.

Syntaks:

 public interface List extends Collection 

3. Indstil interface: Set (java.util.Set) interface er en samling, som ikke kan indeholde duplikerede elementer. Det kan kun omfatte nedarvede metoder til samlingsgrænseflade

Syntaks:

 public interface Set extends Collection 

Køgrænseflade: Kø-grænsefladen (java.util.Queue) definerer kødatastrukturen, som gemmer elementerne i formen FIFO (først ind først ud).

Syntaks:

 public interface Queue extends Collection 

4. Dekø-grænseflade: det er en dobbeltkø. Det tillader indsættelse og fjernelse af elementer fra begge ender. Den implanterer egenskaberne for både stak og kø, så den kan udføre LIFO (Last in first out) stack og FIFO (first in first out) køoperationer.

Syntaks:

 public interface Dequeue extends Queue 

5. Kortgrænseflade: Et kort (java.util.Map) repræsenterer en nøgle-værdiparlagring af elementer. Kortgrænsefladen implementerer ikke samlingsgrænsefladen. Det kan kun indeholde en unik nøgle, men kan have duplikerede elementer. Der er to grænseflader, der implementerer kort i java, som er kortgrænseflade og sorteret kort.

Få den aktuelle dato i java

4) Hvad er forskellen mellem ArrayList og Vector?

Ingen.ArrayListVektor
1)ArrayList er ikke synkroniseret.Vektor er synkroniseret.
2)ArrayList er ikke en ældre klasse.Vector er en ældre klasse.
3)ArrayList øger dens størrelse med 50 % af array-størrelsen.Vector øger sin størrelse ved at fordoble matrixstørrelsen.
4)ArrayList er ikke ?trådsikker? da den ikke er synkroniseret.Vektorlisten er ?trådsikker? da det er hver metode er synkroniseret.

5) Hvad er forskellen mellem ArrayList og LinkedList?

Ingen.ArrayListLinkedList
1)ArrayList bruger et dynamisk array.LinkedList bruger en dobbelt linket liste.
2)ArrayList er ikke effektiv til manipulation, fordi der kræves for meget.LinkedList er effektiv til manipulation.
3)ArrayList er bedre at gemme og hente data.LinkedList er bedre til at manipulere data.
4)ArrayList giver tilfældig adgang.LinkedList giver ikke tilfældig adgang.
5)ArrayList tager mindre hukommelsesomkostninger, da den kun gemmer objekterLinkedList tager mere hukommelse overhead, da det gemmer objektet såvel som adressen på det objekt.

6) Hvad er forskellen mellem Iterator og ListIterator?

Iterator krydser elementerne kun i fremadgående retning, mens ListIterator krydser elementerne i fremadgående og bagudgående retning.

Ingen.IteratorListIterator
1)Iteratoren krydser elementerne kun i fremadgående retning.ListIterator krydser elementerne i både tilbage- og fremadgående retninger.
2)Iteratoren kan bruges i Liste, Set og Queue.ListIterator kan kun bruges i List.
3)Iteratoren kan kun udføre fjernelse, mens den krydser samlingen.ListIterator kan udføre ?add,? ?fjerne,? og ?sæt? drift, mens du krydser samlingen.

7) Hvad er forskellen mellem Iterator og Enumeration?

Ingen.IteratorOptælling
1)Iteratoren kan krydse ældre og ikke-legacy elementer.Optælling kan kun gennemløbe ældre elementer.
2)Iteratoren er fejlhurtig.Optælling er ikke fejl-hurtig.
3)Iteratoren er langsommere end Enumeration.Optælling er hurtigere end Iterator.
4)Iteratoren kan udføre fjernelse, mens den krydser samlingen.Optællingen kan kun udføre traversering på samlingen.

8) Hvad er forskellen mellem List og Set?

Listen og sæt udvider begge samlingsgrænsefladen. Der er dog nogle forskelle mellem de begge, som er anført nedenfor.

  • Listen kan indeholde duplikerede elementer, mens sæt inkluderer unikke elementer.
  • Listen er en ordnet samling, som opretholder indsættelsesrækkefølgen, mens Set er en uordnet samling, som ikke bevarer indsættelsesrækkefølgen.
  • Listegrænsefladen indeholder en enkelt ældre klasse, som er Vector-klasse, mens Set-grænsefladen ikke har nogen ældre klasse.
  • Listegrænsefladen kan tillade n antal nulværdier, mens Set-grænsefladen kun tillader en enkelt nulværdi.

9) Hvad er forskellen mellem HashSet og TreeSet?

HashSet og TreeSet, begge klasser, implementerer Set-grænsefladen. Forskellene mellem de to er angivet nedenfor.

  • HashSet opretholder�ingen rækkefølge�imens TreeSet opretholder�stigende rækkefølge.
  • HashSet påvirket af hash-tabel, mens TreeSet implementeret af en træstruktur.
  • HashSet udfører hurtigere end TreeSet.
  • HashSet understøttes af HashMap, mens TreeSet understøttes af TreeMap.

10) Hvad er forskellen mellem Set og Map?

Forskellene mellem sættet og kortet er angivet nedenfor.

  • Sæt indeholder kun værdier, mens Map indeholder både nøgle og værdier.
  • Sæt indeholder unikke værdier, mens kort kan indeholde unikke nøgler med duplikerede værdier.
  • Sæt indeholder et enkelt antal null-værdier, hvorimod Map kan inkludere en enkelt null-nøgle med n antal null-værdier.

11) Hvad er forskellen mellem HashSet og HashMap?

Forskellene mellem HashSet og HashMap er angivet nedenfor.

  • HashSet indeholder kun værdier, mens HashMap inkluderer indgangen (nøgle, værdi). HashSet kan itereres, men HashMap skal konverteres til Set for at blive itereret.
  • HashSet implementerer Set-grænsefladen, mens HashMap implementerer Map-grænsefladen
  • HashSet kan ikke have nogen dubletværdi, mens HashMap kan indeholde duplikerede værdier med unikke nøgler.
  • HashSet indeholder det eneste enkelte antal null-værdier, mens HashMap kan indeholde en enkelt null-nøgle med n antal null-værdier.

12) Hvad er forskellen mellem HashMap og TreeMap?

Forskellene mellem HashMap og TreeMap er angivet nedenfor.

  • HashMap opretholder ingen rækkefølge, men TreeMap opretholder stigende rækkefølge.
  • HashMap er implementeret af hash-tabel, mens TreeMap er implementeret af en træstruktur.
  • HashMap kan sorteres efter nøgle eller værdi, mens TreeMap kan sorteres efter nøgle.
  • HashMap kan indeholde en null-nøgle med flere null-værdier, mens TreeMap ikke kan indeholde en null-nøgle, men kan have flere null-værdier.

13) Hvad er forskellen mellem HashMap og Hashtable?

Ingen.HashMapHastbar
1)HashMap er ikke synkroniseret.Hashtable er synkroniseret.
2)HashMap kan indeholde én null-nøgle og flere null-værdier.Hashtable kan ikke indeholde nogen null-nøgle eller null-værdi.
3)HashMap er ikke ?trådsikkert,? så det er nyttigt til applikationer uden gevind.Hashtable er trådsikker, og den kan deles mellem forskellige tråde.
4)4) HashMap arver klassen AbstractMapHashtable arver klassen Ordbog.

14) Hvad er forskellen mellem Collection og Collections?

Forskellene mellem samlingen og samlingerne er angivet nedenfor.

  • Samlingen er en grænseflade, mens Samlinger er en klasse.
  • Indsamlingsgrænsefladen giver standardfunktionaliteten for datastruktur til List, Set og Queue. Dog skal klassen Samlinger sortere og synkronisere samlingselementerne.
  • Samlingsgrænsefladen giver de metoder, der kan bruges til datastruktur, mens Collections-klassen giver de statiske metoder, der kan bruges til forskellige operationer på en samling.

15) Hvad er forskellen mellem Comparable og Comparator?

Ingen.SammenligneligKomparator
1)Sammenlignelig giver kun én slags sekvens.Komparatoren giver flere slags sekvenser.
2)Det giver en metode ved navn compareTo().Det giver en metode ved navn compare().
3)Det findes i java.lang-pakken.Det er placeret i java.util-pakken.
4)Hvis vi implementerer den sammenlignelige grænseflade, ændres den faktiske klasse.Den faktiske klasse ændres ikke.

16) Hvad forstår du ved BlockingQueue?

BlockingQueue er en grænseflade, som udvider kø-grænsefladen. Det giver samtidighed i operationerne som hentning, indsættelse, sletning. Mens ethvert element hentes, venter den på, at køen ikke er tom. Mens den opbevarer elementerne, venter den på den ledige plads. BlockingQueue kan ikke indeholde null-elementer, og implementering af BlockingQueue er trådsikker.

Syntaks:

 public interface BlockingQueue extends Queue 

17) Hvad er fordelen ved Properties fil?

Hvis du ændrer værdien i egenskabsfilen, behøver du ikke at kompilere java-klassen igen. Så det gør applikationen nem at administrere. Det bruges til at gemme information, som skal ændres hyppigt. Overvej følgende eksempel.

 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')); } } 

Produktion

 system oracle 

18) Hvad betyder hashCode()-metoden?

Metoden hashCode() returnerer en hashkodeværdi (et heltal).

HashCode()-metoden returnerer det samme heltal, hvis to nøgler (ved at kalde equals()-metoden) er identiske.

Det er dog muligt, at to hash-kodenumre kan have forskellige eller de samme nøgler.

Hvis to objekter ikke producerer et ens resultat ved at bruge equals()-metoden, så vil hashcode()-metoden give det forskellige heltalsresultat for begge objekter.


19) Hvorfor tilsidesætter vi equals()-metoden?

Lige-metoden bruges til at kontrollere, om to objekter er ens eller ej. Det skal tilsidesættes, hvis vi vil kontrollere objekterne ud fra egenskaben.

For eksempel er Employee en klasse, der har 3 datamedlemmer: id, navn og løn. Vi ønsker dog at kontrollere medarbejderobjektets lighed ved lønnen. Derefter skal vi tilsidesætte equals()-metoden.

støbt sql

20) Hvordan synkroniseres liste-, sæt- og kortelementer?

Ja, klassen Samlinger giver metoder til at lave liste-, sæt- eller kortelementer som synkroniserede:

offentlig statisk liste synchronizedList(Liste l){}
offentlig statisk sæt synkroniseret sæt(sæt){}
offentlig statisk SortedSet synchronizedSortedSet(SortedSet s){}
offentlig statisk kort synkroniseret kort(kort m){}
offentlig statisk SortedMap synchronizedSortedMap(SortedMap m){}

21) Hvad er fordelen ved den generiske samling?

Der er tre hovedfordele ved at bruge den generiske samling.

  • Hvis vi bruger den generiske klasse, behøver vi ikke typecasting.
  • Det er typesikkert og kontrolleres på kompileringstidspunktet.
  • Generisk bekræfter kodens stabilitet ved at gøre den fejlregistrerbar på kompileringstidspunktet.

22) Hvad er hash-kollision i Hashtable, og hvordan håndteres det i Java?

To forskellige nøgler med samme hashværdi er kendt som hash-kollision. To separate poster vil blive opbevaret i en enkelt hash-spand for at undgå kollisionen. Der er to måder at undgå hash-kollision.

  • Separat kæde
  • Åbn Adressering

23) Hvad er Ordbogsklassen?

Ordbogsklassen giver mulighed for at gemme nøgleværdi-par.


24) Hvad er standardstørrelsen for belastningsfaktor i hashing-baseret indsamling?

Standardstørrelsen på belastningsfaktoren er 0,75 . Standardkapaciteten beregnes som initial kapacitet * belastningsfaktor. For eksempel, 16 * 0,75 = 12. Så 12 er standardkapaciteten for Map.


25) Hvad forstår du ved fail-fast?

Iteratoren i java, som straks kaster ConcurrentmodificationException, hvis der sker en strukturel ændring, kaldes som en Fail-fast iterator. Fail-fats iterator kræver ikke ekstra plads i hukommelsen.


26) Hvad er forskellen mellem Array og ArrayList?

De vigtigste forskelle mellem Array og ArrayList er angivet nedenfor.

SNArrayArrayList
1Arrayet er af fast størrelse, hvilket betyder, at vi ikke kan ændre størrelsen på arrayet efter behov.ArrayList er ikke af den faste størrelse, vi kan ændre størrelsen dynamisk.
2Arrays er af den statiske type.ArrayList er af dynamisk størrelse.
3Arrays kan gemme primitive datatyper såvel som objekter.ArrayList kan ikke gemme de primitive datatyper, den kan kun gemme objekterne.

27) Hvad er forskellen mellem længden af ​​en Array og størrelsen af ​​ArrayList?

Længden af ​​et array kan opnås ved at bruge egenskaben længde, hvorimod ArrayList ikke understøtter egenskaben length, men vi kan bruge metoden size() til at få antallet af objekter på listen.

Finde længden af ​​arrayet

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

Find størrelsen af ​​ArrayList

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

28) Hvordan konverteres ArrayList til Array og Array til ArrayList?

Vi kan konvertere en Array til ArrayList ved at bruge metoden asList() i Arrays-klassen. asList()-metoden er den statiske metode for Arrays-klassen og accepterer List-objektet. Overvej følgende syntaks:

 Arrays.asList(item) 

Vi kan konvertere en ArrayList til Array ved hjælp af toArray()-metoden i ArrayList-klassen. Overvej følgende syntaks for at konvertere ArrayList til List-objektet.

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

29) Hvordan gør man Java ArrayList skrivebeskyttet?

Vi kan få Java ArrayList skrivebeskyttet ved at kalde Collections.unmodifiableCollection() metoden. Når vi definerer en ArrayList som skrivebeskyttet, kan vi ikke udføre nogen ændring i samlingen gennem �add(), remove() eller set() metoden.


30) Hvordan fjerner du dubletter fra ArrayList?

Der er to måder at fjerne dubletter fra ArrayList.

    Brug af HashSet:Ved at bruge HashSet kan vi fjerne det duplikerede element fra ArrayList, men det vil da ikke bevare indsættelsesrækkefølgen.Brug af LinkedHashSet:Vi kan også opretholde indsættelsesrækkefølgen ved at bruge LinkedHashSet i stedet for HashSet.

Processen til at fjerne duplikerede elementer fra ArrayList ved hjælp af LinkedHashSet:

  • Kopier alle elementerne i ArrayList til LinkedHashSet.
  • Tøm ArrayList ved hjælp af clear() metoden, som vil fjerne alle elementer fra listen.
  • Kopier nu alle elementerne i LinkedHashset til ArrayList.

31) Hvordan vende ArrayList?

For at vende en ArrayList kan vi bruge reverse()-metoden fra Collections-klassen. Overvej følgende eksempel.

 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()); } } } 

Produktion

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

32) Hvordan sorterer man ArrayList i faldende rækkefølge?

For at sortere ArrayList i faldende rækkefølge kan vi bruge reverseOrder-metoden i klassen Collections. Overvej følgende eksempel.

 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()); } } } 

Produktion

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

33) Hvordan synkroniseres ArrayList?

Vi kan synkronisere ArrayList på to måder.

  • Bruger metoden Collections.synchronizedList().
  • Brug af CopyOnWriteArrayList

3. 4) Hvornår skal man bruge ArrayList og LinkedList?

LinkedLists er bedre at bruge til opdateringsoperationerne, mens ArrayLists er bedre at bruge til søgeoperationerne.