logo

34 Java Collections intervjufrågor

I Java ställs frågor om samlingsintervju mest av intervjuarna. Här är listan över de mest ställda samlingarnas intervjufrågor med svar.


1) Vad är samlingsramverket i Java?

Collection Framework är en kombination av klasser och gränssnitt, som används för att lagra och manipulera data i form av objekt. Den tillhandahåller olika klasser som ArrayList, Vector, Stack och HashSet, etc. och gränssnitt som List, Queue, Set etc. för detta ändamål.


2) Vilka är de största skillnaderna mellan array och samling?

Array och Collection är något liknande när det gäller att lagra referenser för objekt och manipulera data, men de skiljer sig åt på många sätt. De huvudsakliga skillnaderna mellan arrayen och samlingen definieras nedan:

  • Arrayer är alltid av fast storlek, det vill säga en användare kan inte öka eller minska längden på arrayen enligt deras krav eller vid körning, men I Collection kan storleken ändras dynamiskt efter behov.
  • Arrayer kan bara lagra homogena eller liknande objekt, men i Collection kan heterogena objekt lagras.
  • Arrayer kan inte tillhandahålla den 'färdiga?' metoder för användarkrav som sortering, sökning etc. men Collection innehåller färdiga metoder att använda.

3) Förklara olika gränssnitt som används i samlingsramverket?

Collection framework implementerar olika gränssnitt, Collection interface och Map interface (java.util.Map) är de huvudsakligen använda gränssnitten för Java Collection Framework. Lista över gränssnitt för Collection Framework ges nedan:

1. Samlingsgränssnitt: Collection (java.util.Collection) är det primära gränssnittet, och varje samling måste implementera detta gränssnitt.

Syntax:

 public interface Collectionextends Iterable 

Where representerar att detta gränssnitt är av generisk typ

2. Listgränssnitt: Listgränssnittet utökar samlingsgränssnittet och det är en ordnad samling av objekt. Den innehåller dubbletter av element. Det tillåter också slumpmässig åtkomst av element.

Syntax:

 public interface List extends Collection 

3. Ställ in gränssnitt: Gränssnittet Set (java.util.Set) är en samling som inte kan innehålla dubbletter av element. Det kan bara inkludera ärvda metoder för samlingsgränssnitt

Syntax:

 public interface Set extends Collection 

Kögränssnitt: Gränssnittet Queue (java.util.Queue) definierar ködatastrukturen, som lagrar elementen i formen FIFO (först in först ut).

Syntax:

 public interface Queue extends Collection 

4. Avköa gränssnitt: det är en dubbelkö. Den tillåter insättning och borttagning av element från båda ändarna. Den implanterar egenskaperna för både stack och kö så att den kan utföra LIFO (Sist in, först ut) stack och FIFO (först in först ut) köoperationer.

Syntax:

 public interface Dequeue extends Queue 

5. Kartgränssnitt: En karta (java.util.Map) representerar en nyckel, värdeparlagring av element. Kartgränssnittet implementerar inte samlingsgränssnittet. Den kan bara innehålla en unik nyckel men kan ha dubbletter av element. Det finns två gränssnitt som implementerar Map i java som är Map interface och Sorted Map.

java gör medan exempel

4) Vad är skillnaden mellan ArrayList och Vector?

Nej.ArrayListVektor
1)ArrayList är inte synkroniserad.Vektorn är synkroniserad.
2)ArrayList är inte en äldre klass.Vector är en äldre klass.
3)ArrayList ökar sin storlek med 50 % av arraystorleken.Vector ökar sin storlek genom att dubbla arraystorleken.
4)ArrayList är inte ?trådsäker? eftersom den inte är synkroniserad.Vektorlistan är ?trådsäker? eftersom det är varje metod är synkroniserad.

5) Vad är skillnaden mellan ArrayList och LinkedList?

Nej.ArrayListLänkad lista
1)ArrayList använder en dynamisk array.LinkedList använder en dubbellänkad lista.
2)ArrayList är inte effektivt för manipulation eftersom det krävs för mycket.LinkedList är effektivt för manipulation.
3)ArrayList är bättre att lagra och hämta data.LinkedList är bättre att manipulera data.
4)ArrayList ger slumpmässig åtkomst.LinkedList ger inte slumpmässig åtkomst.
5)ArrayList tar mindre minneskostnader eftersom den endast lagrar objektLinkedList tar mer minneskostnader eftersom den lagrar objektet såväl som adressen till det objektet.

6) Vad är skillnaden mellan Iterator och ListIterator?

Iterator korsar elementen i riktning framåt endast medan ListIterator korsar elementen i riktning framåt och bakåt.

Nej.IteratorListIterator
1)Iteratorn korsar elementen endast i framåtriktningen.ListIterator korsar elementen i riktningar både bakåt och framåt.
2)Iteratorn kan användas i Lista, Set och Queue.ListIterator kan endast användas i List.
3)Iteratorn kan endast utföra borttagningsoperation när den korsar samlingen.ListIterator kan utföra ?add,? ?avlägsna,? och ?set? operation medan du korsar samlingen.

7) Vad är skillnaden mellan Iterator och Enumeration?

Nej.IteratorUppräkning
1)Iteratorn kan passera äldre och icke-legacy element.Uppräkning kan endast passera äldre element.
2)Iteratorn är felsnabb.Uppräkningen går inte snabbt.
3)Iteratorn är långsammare än uppräkning.Uppräkning är snabbare än Iterator.
4)Iteratorn kan utföra borttagningsoperation medan den korsar samlingen.Uppräkningen kan endast utföra traversering på samlingen.

8) Vad är skillnaden mellan List och Set?

Listan och Set utökar båda samlingsgränssnittet. Det finns dock vissa skillnader mellan de båda som listas nedan.

  • Listan kan innehålla dubbletter av element medan Set innehåller unika objekt.
  • Listan är en ordnad samling som upprätthåller insättningsordningen medan Set är en oordnad samling som inte bevarar insättningsordningen.
  • Listgränssnittet innehåller en enda äldre klass som är Vector-klass medan Set-gränssnittet inte har någon äldre klass.
  • Listgränssnittet kan tillåta n antal nollvärden medan Set-gränssnittet endast tillåter ett enda nollvärde.

9) Vad är skillnaden mellan HashSet och TreeSet?

HashSet och TreeSet, båda klasserna, implementerar Set-gränssnittet. Skillnaderna mellan de båda listas nedan.

  • HashSet upprätthåller�ingen ordning� medan TreeSet bibehåller�stigande ordning.
  • HashSet påverkas av hashtabell medan TreeSet implementeras av en trädstruktur.
  • HashSet fungerar snabbare än TreeSet.
  • HashSet stöds av HashMap medan TreeSet stöds av TreeMap.

10) Vad är skillnaden mellan Set och Map?

Skillnaderna mellan uppsättningen och kartan ges nedan.

  • Uppsättningen innehåller endast värden medan Map innehåller både nyckel och värden.
  • Uppsättningen innehåller unika värden medan Map kan innehålla unika nycklar med dubbletter av värden.
  • Uppsättningen innehåller ett enda nollvärde medan Map kan innehålla en enda nollnyckel med n antal nollvärden.

11) Vad är skillnaden mellan HashSet och HashMap?

Skillnaderna mellan HashSet och HashMap listas nedan.

pothineni bagge
  • HashSet innehåller endast värden medan HashMap inkluderar posten (nyckel, värde). HashSet kan itereras, men HashMap måste konverteras till Set för att kunna itereras.
  • HashSet implementerar Set-gränssnittet medan HashMap implementerar Map-gränssnittet
  • HashSet kan inte ha något dubblettvärde medan HashMap kan innehålla dubbletter av värden med unika nycklar.
  • HashSet innehåller det enda numret av null-värden medan HashMap kan hålla en enda null-nyckel med n antal null-värden.

12) Vad är skillnaden mellan HashMap och TreeMap?

Skillnaderna mellan HashMap och TreeMap ges nedan.

  • HashMap upprätthåller ingen ordning, men TreeMap upprätthåller stigande ordning.
  • HashMap implementeras av hashtabell medan TreeMap implementeras av en trädstruktur.
  • HashMap kan sorteras efter nyckel eller värde medan TreeMap kan sorteras efter nyckel.
  • HashMap kan innehålla en null-nyckel med flera null-värden medan TreeMap inte kan innehålla en null-nyckel utan kan ha flera null-värden.

13) Vad är skillnaden mellan HashMap och Hashtable?

Nej.HashMapHastbar
1)HashMap är inte synkroniserat.Hashtable är synkroniserad.
2)HashMap kan innehålla en nullnyckel och flera nullvärden.Hashtable kan inte innehålla någon nullnyckel eller nollvärde.
3)HashMap är inte ?trådsäkert? så det är användbart för icke-trådade applikationer.Hashtable är trådsäker och kan delas mellan olika trådar.
4)4) HashMap ärver klassen AbstractMapHashtable ärver klassen Dictionary.

14) Vad är skillnaden mellan Collection och Collections?

Skillnaderna mellan samlingen och samlingarna anges nedan.

  • Samlingen är ett gränssnitt medan Samlingar är en klass.
  • Insamlingsgränssnittet tillhandahåller standardfunktionaliteten för datastruktur till List, Set och Queue. Men klassen Collections är att sortera och synkronisera samlingselementen.
  • Samlingsgränssnittet tillhandahåller metoderna som kan användas för datastruktur medan Collections class tillhandahåller de statiska metoderna som kan användas för olika operationer på en samling.

15) Vad är skillnaden mellan Comparable och Comparator?

Nej.JämförbarKomparator
1)Jämförbar ger bara en sorts sekvens.Komparatorn tillhandahåller flera sorters sekvenser.
2)Den tillhandahåller en metod som heter compareTo().Den tillhandahåller en metod som heter compare().
3)Det finns i paketet java.lang.Den finns i paketet java.util.
4)Om vi ​​implementerar det jämförbara gränssnittet ändras den faktiska klassen.Den faktiska klassen ändras inte.

16) Vad förstår du med BlockingQueue?

BlockingQueue är ett gränssnitt som utökar kögränssnittet. Det ger samtidighet i operationerna som hämtning, infogning, radering. Under hämtning av något element väntar den på att kön inte är tom. Medan elementen lagras väntar den på tillgängligt utrymme. BlockingQueue kan inte innehålla null-element och implementeringen av BlockingQueue är trådsäker.

Syntax:

 public interface BlockingQueue extends Queue 

17) Vad är fördelen med Properties fil?

Om du ändrar värdet i egenskapsfilen behöver du inte kompilera om javaklassen. Så det gör applikationen lätt att hantera. Den används för att lagra information som ska ändras ofta. Betrakta följande exempel.

 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) Vad innebär hashCode()-metoden?

Metoden hashCode() returnerar ett hashkodvärde (ett heltal).

Metoden hashCode() returnerar samma heltal om två nycklar (genom att anropa metoden equals()) är identiska.

Det är dock möjligt att två hash-kodnummer kan ha olika eller samma nycklar.

Om två objekt inte ger ett lika resultat genom att använda metoden equals() kommer metoden hashcode() att tillhandahålla olika heltalsresultat för båda objekten.


19) Varför åsidosätter vi equals()-metoden?

Likametoden används för att kontrollera om två objekt är lika eller inte. Det måste åsidosättas om vi vill kontrollera objekten utifrån egenskapen.

Till exempel är Employee en klass som har 3 datamedlemmar: id, namn och lön. Däremot vill vi kontrollera anställningens likvärdighet med lönen. Sedan måste vi åsidosätta equals()-metoden.


20) Hur synkroniserar man list-, set- och kartelement?

Ja, klassen Collections tillhandahåller metoder för att göra List-, Set- eller Map-element som synkroniserade:

offentlig statisk lista synchronizedList(List l){}
offentlig statisk Set synchronizedSet(Set s){}
offentlig statisk SortedSet synchronizedSortedSet(SortedSet s){}
offentlig statisk karta synchronizedMap(Map m){}
offentlig statisk SortedMap synchronizedSortedMap(SortedMap m){}

21) Vad är fördelen med den generiska kollektionen?

Det finns tre huvudsakliga fördelar med att använda den generiska samlingen.

  • Om vi ​​använder den generiska klassen behöver vi ingen typcasting.
  • Det är typsäkert och kontrolleras vid kompilering.
  • Generic bekräftar kodens stabilitet genom att göra den buggupptäckbar vid kompilering.

22) Vad är hash-kollision i Hashtable och hur hanteras det i Java?

Två olika nycklar med samma hashvärde kallas hash-kollision. Två separata poster kommer att förvaras i en enda hash-hink för att undvika kollisionen. Det finns två sätt att undvika hash-kollision.

  • Separat kedja
  • Öppna Adressering

23) Vad är klassen Ordbok?

Klassen Dictionary ger möjlighet att lagra nyckel-värdepar.


24) Vilken är standardstorleken på belastningsfaktorn i hashbaserad insamling?

Standardstorleken på belastningsfaktorn är 0,75 . Standardkapaciteten beräknas som initial kapacitet * belastningsfaktor. Till exempel, 16 * 0,75 = 12. Så, 12 är standardkapaciteten för Map.


25) Vad förstår du med fail-fast?

Iteratorn i java som omedelbart kastar ConcurrentmodificationException, om någon strukturell modifiering inträffar i, kallas en Fail-fast iterator. Fail-fats iterator kräver inget extra utrymme i minnet.


26) Vad är skillnaden mellan Array och ArrayList?

De huvudsakliga skillnaderna mellan Array och ArrayList ges nedan.

SNArrayArrayList
1Arrayen är av fast storlek, vilket betyder att vi inte kan ändra storlek på arrayen efter behov.ArrayList är inte av den fasta storleken vi kan ändra storleken dynamiskt.
2Arrayer är av statisk typ.ArrayList är av dynamisk storlek.
3Arrayer kan lagra primitiva datatyper såväl som objekt.ArrayList kan inte lagra de primitiva datatyperna den kan bara lagra objekten.

27) Vad är skillnaden mellan längden på en Array och storleken på ArrayList?

Längden på en array kan erhållas med hjälp av egenskapen length medan ArrayList inte stöder length-egenskapen, men vi kan använda metoden size() för att få antalet objekt i listan.

Hitta längden på arrayen

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

Hitta storleken på ArrayList

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

28) Hur konverterar man ArrayList till Array och Array till ArrayList?

Vi kan konvertera en Array till ArrayList genom att använda metoden asList() i klassen Arrays. metoden asList() är den statiska metoden för klassen Arrays och accepterar List-objektet. Tänk på följande syntax:

 Arrays.asList(item) 

Vi kan konvertera en ArrayList till Array med metoden toArray() i klassen ArrayList. Överväg följande syntax för att konvertera ArrayList till List-objektet.

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

29) Hur gör jag Java ArrayList skrivskyddad?

Vi kan få Java ArrayList Read-only genom att anropa metoden Collections.unmodifiableCollection() . När vi definierar en ArrayList som skrivskyddad kan vi inte utföra någon modifiering i samlingen genom metoden �add(), remove() eller set().


30) Hur tar man bort dubbletter från ArrayList?

Det finns två sätt att ta bort dubbletter från ArrayList.

    Använda HashSet:Genom att använda HashSet kan vi ta bort dubblettelementet från ArrayList, men det kommer då inte att bevara insättningsordningen.Använder LinkedHashSet:Vi kan också behålla insättningsordningen genom att använda LinkedHashSet istället för HashSet.

Processen för att ta bort dubbletter av element från ArrayList med hjälp av LinkedHashSet:

radera senaste commit git
  • Kopiera alla element i ArrayList till LinkedHashSet.
  • Töm ArrayList med metoden clear(), som tar bort alla element från listan.
  • Kopiera nu alla element i LinkedHashset till ArrayList.

31) Hur vänder man ArrayList?

För att vända en ArrayList kan vi använda metoden reverse() i klassen Collections. Betrakta följande exempel.

 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) Hur sorterar man ArrayList i fallande ordning?

För att sortera ArrayList i fallande ordning kan vi använda reverseOrder-metoden i klassen Collections. Betrakta följande exempel.

 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) Hur synkroniserar man ArrayList?

Vi kan synkronisera ArrayList på två sätt.

  • Använder metoden Collections.synchronizedList().
  • Använder CopyOnWriteArrayList

3. 4) När ska man använda ArrayList och LinkedList?

LinkedLists är bättre att använda för uppdateringsoperationerna medan ArrayLists är bättre att använda för sökoperationerna.