logo

34 Java-samlinger intervjuspørsmål

I Java stilles samlingsintervjuspørsmål mest av intervjuerne. Her er listen over de mest stilte samlingene intervjuspørsmål med svar.


1) Hva er samlingsrammeverket i Java?

Collection Framework er en kombinasjon av klasser og grensesnitt, som brukes til å lagre og manipulere dataene i form av objekter. Den gir forskjellige klasser som ArrayList, Vector, Stack og HashSet, etc. og grensesnitt som List, Queue, Set, etc. for dette formålet.


2) Hva er hovedforskjellene mellom array og samling?

Array og Collection er noe like når det gjelder lagring av referanser til objekter og manipulering av data, men de er forskjellige på mange måter. Hovedforskjellene mellom matrisen og samlingen er definert nedenfor:

  • Matriser er alltid av fast størrelse, det vil si at en bruker ikke kan øke eller redusere lengden på matrisen i henhold til deres krav eller under kjøring, men i samlingen kan størrelsen endres dynamisk etter behov.
  • Arrays kan bare lagre homogene eller lignende objekter, men i Collection kan heterogene objekter lagres.
  • Arrays kan ikke gi den 'ferdige'? metoder for brukerkrav som sortering, søk osv. men Samling inkluderer ferdige metoder å bruke.

3) Forklar ulike grensesnitt som brukes i innsamlingsrammeverket?

Collection framework implementerer ulike grensesnitt, Collection interface og Map interface (java.util.Map) er de mest brukte grensesnittene til Java Collection Framework. Liste over grensesnitt for Collection Framework er gitt nedenfor:

1. Samlingsgrensesnitt: Samling (java.util.Collection) er det primære grensesnittet, og hver samling må implementere dette grensesnittet.

Syntaks:

 public interface Collectionextends Iterable 

Hvor representerer at dette grensesnittet er av generisk type

2. Listegrensesnitt: Listegrensesnitt utvider samlingsgrensesnittet, og det er en ordnet samling av objekter. Den inneholder dupliserte elementer. Den tillater også tilfeldig tilgang til elementer.

Syntaks:

 public interface List extends Collection 

3. Angi grensesnitt: Set (java.util.Set) grensesnitt er en samling som ikke kan inneholde dupliserte elementer. Den kan bare inkludere nedarvede metoder for samlingsgrensesnitt

Syntaks:

 public interface Set extends Collection 

Køgrensesnitt: Queue (java.util.Queue) grensesnitt definerer kødatastruktur, som lagrer elementene i formen FIFO (først inn først ut).

Syntaks:

 public interface Queue extends Collection 

4. Dekø-grensesnitt: det er en dobbel-ende-kø. Den tillater innsetting og fjerning av elementer fra begge ender. Den implanterer egenskapene til både stabel og kø slik at den kan utføre LIFO (Sist inn, først ut) stack og FIFO (først inn først ut) køoperasjoner.

Syntaks:

 public interface Dequeue extends Queue 

5. Kartgrensesnitt: Et kart (java.util.Map) representerer en nøkkel, verdiparlagring av elementer. Kartgrensesnittet implementerer ikke innsamlingsgrensesnittet. Den kan bare inneholde en unik nøkkel, men kan ha dupliserte elementer. Det er to grensesnitt som implementerer kart i java som er kartgrensesnitt og sortert kart.

hva gjør en pc rask

4) Hva er forskjellen mellom ArrayList og Vector?

Nei.ArrayListVektor
1)ArrayList er ikke synkronisert.Vektor er synkronisert.
2)ArrayList er ikke en eldre klasse.Vector er en eldre klasse.
3)ArrayList øker størrelsen med 50 % av array-størrelsen.Vector øker størrelsen ved å doble matrisestørrelsen.
4)ArrayList er ikke ?trådsikker? da den ikke er synkronisert.Vektorlisten er ?trådsikker? som det er hver metode er synkronisert.

5) Hva er forskjellen mellom ArrayList og LinkedList?

Nei.ArrayListLinkedList
1)ArrayList bruker en dynamisk matrise.LinkedList bruker en dobbeltlenket liste.
2)ArrayList er ikke effektiv for manipulering fordi det kreves for mye.LinkedList er effektiv for manipulering.
3)ArrayList er bedre å lagre og hente data.LinkedList er bedre å manipulere data.
4)ArrayList gir tilfeldig tilgang.LinkedList gir ikke tilfeldig tilgang.
5)ArrayList tar mindre minne overhead da den bare lagrer objekterLinkedList tar mer minne overhead, siden den lagrer objektet så vel som adressen til det objektet.

6) Hva er forskjellen mellom Iterator og ListIterator?

Iterator krysser elementene bare i foroverretningen, mens ListIterator krysser elementene i retning forover og bakover.

Nei.IteratorListIterator
1)Iteratoren krysser elementene kun i foroverretningen.ListIterator krysser elementene både bakover og fremover.
2)Iteratoren kan brukes i Liste, Set og Queue.ListIterator kan bare brukes i List.
3)Iteratoren kan bare utføre fjerningsoperasjon mens den går gjennom samlingen.ListIterator kan utføre ?legg til,? ?fjerne,? og ?sett? operasjon mens du krysser samlingen.

7) Hva er forskjellen mellom Iterator og Enumeration?

Nei.IteratorOppregning
1)Iteratoren kan krysse eldre og ikke-legacy elementer.Oppregning kan bare krysse eldre elementer.
2)Iteratoren er feilrask.Oppregningen er ikke rask.
3)Iteratoren er tregere enn Enumeration.Opptelling er raskere enn Iterator.
4)Iteratoren kan utføre fjerningsoperasjon mens den går gjennom samlingen.Enumerasjonen kan kun utføre traversering på samlingen.

8) Hva er forskjellen mellom List og Set?

Listen og Settet utvider begge samlingsgrensesnittet. Det er imidlertid noen forskjeller mellom begge som er oppført nedenfor.

  • Listen kan inneholde dupliserte elementer, mens settet inkluderer unike elementer.
  • Listen er en ordnet samling som opprettholder innsettingsrekkefølgen, mens Set er en uordnet samling som ikke bevarer innsettingsrekkefølgen.
  • List-grensesnittet inneholder en enkelt eldre klasse som er Vector-klasse, mens Set-grensesnitt ikke har noen eldre klasse.
  • List-grensesnittet kan tillate n antall nullverdier, mens Set-grensesnittet bare tillater en enkelt nullverdi.

9) Hva er forskjellen mellom HashSet og TreeSet?

HashSet og TreeSet, begge klasser, implementerer Set-grensesnittet. Forskjellene mellom begge er listet opp nedenfor.

  • HashSet opprettholder�ingen rekkefølge� mens TreeSet opprettholder�stigende rekkefølge.
  • HashSet påvirket av hashtabell mens TreeSet implementert av en trestruktur.
  • HashSet yter raskere enn TreeSet.
  • HashSet støttes av HashMap, mens TreeSet støttes av TreeMap.

10) Hva er forskjellen mellom Set og Map?

Forskjellene mellom settet og kartet er gitt nedenfor.

  • Settet inneholder kun verdier, mens Map inneholder både nøkkel og verdier.
  • Settet inneholder unike verdier, mens kart kan inneholde unike nøkler med dupliserte verdier.
  • Settet inneholder et enkelt tall med nullverdi, mens Map kan inkludere en enkelt nullnøkkel med n antall nullverdier.

11) Hva er forskjellen mellom HashSet og HashMap?

Forskjellene mellom HashSet og HashMap er oppført nedenfor.

  • HashSet inneholder bare verdier mens HashMap inkluderer oppføringen (nøkkel, verdi). HashSet kan itereres, men HashMap må konverteres til Set for å itereres.
  • HashSet implementerer Set-grensesnitt mens HashMap implementerer Map-grensesnittet
  • HashSet kan ikke ha noen duplikatverdi, mens HashMap kan inneholde dupliserte verdier med unike nøkler.
  • HashSet inneholder det eneste enkelttallet med nullverdi, mens HashMap kan inneholde en enkelt nullnøkkel med n antall nullverdier.

12) Hva er forskjellen mellom HashMap og TreeMap?

Forskjellene mellom HashMap og TreeMap er gitt nedenfor.

  • HashMap opprettholder ingen rekkefølge, men TreeMap opprettholder stigende rekkefølge.
  • HashMap er implementert av hash-tabell, mens TreeMap er implementert av en trestruktur.
  • HashMap kan sorteres etter nøkkel eller verdi, mens TreeMap kan sorteres etter nøkkel.
  • HashMap kan inneholde en nullnøkkel med flere nullverdier, mens TreeMap ikke kan inneholde en nullnøkkel, men kan ha flere nullverdier.

13) Hva er forskjellen mellom HashMap og Hashtable?

Nei.HashMapHastbar
1)HashMap er ikke synkronisert.Hashtable er synkronisert.
2)HashMap kan inneholde én nullnøkkel og flere nullverdier.Hashtable kan ikke inneholde noen nullnøkkel eller nullverdi.
3)HashMap er ikke ?trådsikkert? så det er nyttig for ikke-trådede applikasjoner.Hashtable er trådsikker, og den kan deles mellom ulike tråder.
4)4) HashMap arver AbstractMap-klassenHashtable arver Ordbok-klassen.

14) Hva er forskjellen mellom samling og samlinger?

Forskjellene mellom samlingen og samlingene er gitt nedenfor.

  • Samlingen er et grensesnitt, mens samlinger er en klasse.
  • Innsamlingsgrensesnittet gir standardfunksjonaliteten til datastruktur til List, Set og Queue. Samlinger-klassen skal imidlertid sortere og synkronisere samlingselementene.
  • Samlingsgrensesnittet gir metodene som kan brukes for datastruktur, mens Collections-klassen gir de statiske metodene som kan brukes til ulike operasjoner på en samling.

15) Hva er forskjellen mellom Comparable og Comparator?

Nei.SammenlignbarKomparator
1)Sammenlignbar gir bare én slags sekvens.Komparatoren gir flere typer sekvenser.
2)Den gir én metode kalt compareTo().Den gir én metode som heter compare().
3)Det finnes i java.lang-pakken.Den ligger i java.util-pakken.
4)Hvis vi implementerer Comparable-grensesnittet, endres den faktiske klassen.Den faktiske klassen endres ikke.

16) Hva forstår du med BlockingQueue?

BlockingQueue er et grensesnitt som utvider Queue-grensesnittet. Det gir samtidighet i operasjonene som henting, innsetting, sletting. Mens du henter ethvert element, venter den på at køen ikke er tom. Mens den lagrer elementene, venter den på tilgjengelig plass. BlockingQueue kan ikke inneholde null-elementer, og implementering av BlockingQueue er trådsikker.

Syntaks:

 public interface BlockingQueue extends Queue 

17) Hva er fordelen med Properties-filen?

Hvis du endrer verdien i egenskapsfilen, trenger du ikke kompilere java-klassen på nytt. Så det gjør applikasjonen enkel å administrere. Den brukes til å lagre informasjon som skal endres ofte. Tenk på 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')); } } 

Produksjon

 system oracle 

18) Hva betyr hashCode()-metoden?

Metoden hashCode() returnerer en hashkodeverdi (et heltall).

HashCode()-metoden returnerer samme heltall hvis to nøkler (ved å kalle equals()-metoden) er identiske.

Det er imidlertid mulig at to hash-kodenumre kan ha forskjellige eller samme nøkler.

Hvis to objekter ikke gir et likt resultat ved å bruke equals()-metoden, vil hashcode()-metoden gi det forskjellige heltallsresultatet for begge objektene.


19) Hvorfor overstyrer vi equals()-metoden?

Lik metoden brukes til å sjekke om to objekter er like eller ikke. Den må overstyres hvis vi ønsker å sjekke objektene basert på egenskapen.

For eksempel er Employee en klasse som har 3 datamedlemmer: id, navn og lønn. Vi ønsker imidlertid å sjekke likestilling av ansattes objekt ved lønn. Deretter må vi overstyre equals()-metoden.

c++ sett

20) Hvordan synkronisere liste-, sett- og kartelementer?

Ja, klassen Samlinger gir metoder for å gjøre liste-, sett- eller kartelementer som synkroniserte:

offentlig statisk liste synchronizedList(Liste l){}
offentlig statisk sett synkronisertSett(sett){}
offentlig statisk SortedSet synchronizedSortedSet(SortedSet s){}
offentlig statisk kart synchronizedMap(Map m){}
offentlig statisk SortedMap synchronizedSortedMap(SortedMap m){}

21) Hva er fordelen med den generiske samlingen?

Det er tre hovedfordeler ved å bruke den generiske samlingen.

  • Hvis vi bruker den generiske klassen, trenger vi ikke typecasting.
  • Den er typesikker og sjekkes på kompileringstidspunktet.
  • Generisk bekrefter stabiliteten til koden ved å gjøre den feilsøkbar på kompileringstidspunktet.

22) Hva er hash-kollisjon i Hashtable og hvordan håndteres det i Java?

To forskjellige nøkler med samme hash-verdi er kjent som hash-kollisjon. To separate oppføringer vil bli holdt i en enkelt hash-bøtte for å unngå kollisjonen. Det er to måter å unngå hasj-kollisjon på.

  • Separat kjetting
  • Åpne Adressering

23) Hva er Ordbok-klassen?

Ordbok-klassen gir muligheten til å lagre nøkkelverdi-par.


24) Hva er standardstørrelsen på belastningsfaktoren i hashing-basert samling?

Standardstørrelsen på belastningsfaktoren er 0,75 . Standardkapasiteten beregnes som initial kapasitet * lastfaktor. For eksempel, 16 * 0,75 = 12. Så, 12 er standardkapasiteten til kart.


25) Hva forstår du med fail-fast?

Iteratoren i java som umiddelbart kaster ConcurrentmodificationException, hvis noen strukturell modifikasjon skjer i, kalles som en Fail-fast iterator. Fail-fats iterator krever ingen ekstra plass i minnet.


26) Hva er forskjellen mellom Array og ArrayList?

De viktigste forskjellene mellom Array og ArrayList er gitt nedenfor.

SNArrayArrayList
1Arrayen er av fast størrelse, noe som betyr at vi ikke kan endre størrelsen på arrayet etter behov.ArrayList er ikke av den faste størrelsen, vi kan endre størrelsen dynamisk.
2Arrays er av statisk type.ArrayList er av dynamisk størrelse.
3Matriser kan lagre primitive datatyper så vel som objekter.ArrayList kan ikke lagre de primitive datatypene, den kan bare lagre objektene.

27) Hva er forskjellen mellom lengden på en Array og størrelsen på ArrayList?

Lengden på en matrise kan fås ved å bruke egenskapen lengde, mens ArrayList ikke støtter lengdeegenskapen, men vi kan bruke size()-metoden for å få antall objekter i listen.

Finne lengden på matrisen

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

Finne størrelsen på ArrayList

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

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

Vi kan konvertere en Array til ArrayList ved å bruke asList()-metoden til Arrays-klassen. asList()-metoden er den statiske metoden til Arrays-klassen og aksepterer List-objektet. Tenk på følgende syntaks:

 Arrays.asList(item) 

Vi kan konvertere en ArrayList til Array ved å bruke toArray()-metoden i ArrayList-klassen. Tenk på følgende syntaks for å konvertere ArrayList til List-objektet.

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

29) Hvordan gjøre Java ArrayList skrivebeskyttet?

Vi kan få Java ArrayList skrivebeskyttet ved å kalle Collections.unmodifiableCollection()-metoden. Når vi definerer en ArrayList som skrivebeskyttet, kan vi ikke utføre noen modifikasjon i samlingen gjennom �add(), remove() eller set()-metoden.


30) Hvordan fjerne duplikater fra ArrayList?

Det er to måter å fjerne duplikater fra ArrayList.

    Bruke HashSet:Ved å bruke HashSet kan vi fjerne det dupliserte elementet fra ArrayList, men det vil da ikke bevare innsettingsrekkefølgen.Bruke LinkedHashSet:Vi kan også opprettholde innsettingsrekkefølgen ved å bruke LinkedHashSet i stedet for HashSet.

Prosessen for å fjerne dupliserte elementer fra ArrayList ved å bruke LinkedHashSet:

  • Kopier alle elementene i ArrayList til LinkedHashSet.
  • Tøm ArrayList ved å bruke clear()-metoden, som vil fjerne alle elementene fra listen.
  • Kopier nå alle elementene i LinkedHashset til ArrayList.

31) Hvordan reversere ArrayList?

For å reversere en ArrayList, kan vi bruke reverse()-metoden fra Collections-klassen. Tenk på 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()); } } } 

Produksjon

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

32) Hvordan sortere ArrayList i synkende rekkefølge?

For å sortere ArrayList i synkende rekkefølge, kan vi bruke reverseOrder-metoden til Collections-klassen. Tenk på 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()); } } } 

Produksjon

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

33) Hvordan synkronisere ArrayList?

Vi kan synkronisere ArrayList på to måter.

  • Bruker metoden Collections.synchronizedList()
  • Bruker CopyOnWriteArrayList

3. 4) Når skal jeg bruke ArrayList og LinkedList?

LinkedLists er bedre å bruke for oppdateringsoperasjonene, mens ArrayLists er bedre å bruke for søkeoperasjonene.