80 Java Interviewvragen en antwoorden over collecties (2024)
Java Collecties Interviewvragen en antwoorden voor eerstejaarsstudenten
1) Waar zit een raamwerk in Java?
Een framework is een populaire en kant-en-klare architectuur die een set klassen en interfaces bevat.
2) Waar bestaat het Collection-framework uit Java?
Collection Framework is een groep klassen en interfaces die wordt gebruikt om de objecten op te slaan en te beheren. Het biedt verschillende klassen zoals Vector, ArrayList, HashSet, Stack, enz. Java Het verzamelframework kan ook worden gebruikt voor interfaces zoals Wachtrij, Set, Lijst, enz.
3) Leg de collectiecollectie uit
java.util.Collections is een klasse die bestaat uit statische methoden die werken op verzamelingen. Het bevat polymorfe algoritmen om te werken op verzamelingen, "wrappers". Deze klasse bevat methoden voor algoritmen, zoals binair sorteren, zoeken, schudden, etc.
4) Wat is de hashCode()?
De hashCode() is een methode die een geheel getal hashcode retourneert.
5) Maak onderscheid tussen ArrayList en Vector in de Java verzamelkader.
ArrayLijst | vector |
---|---|
ArrayList kan niet worden gesynchroniseerd. | Vector kan gesynchroniseerd worden. |
Het is geen oudere klasse. | Het is een legacy-klasse. |
Het kan de grootte vergroten met 50% van de grootte van de array. | Het kan zijn omvang vergroten door de grootte van de array te verdubbelen. |
ArrayList is niet thread-safe. | Vector is draadveilig. |
6) Waar zit ArrayList in Java?
ArrayLijst is een datastructuur die kan worden uitgerekt om extra elementen binnen zichzelf te huisvesten en terug kan krimpen tot een kleiner formaat wanneer elementen worden verwijderd. Het is een zeer belangrijke datastructuur die nuttig is bij het omgaan met het dynamische gedrag van elementen.
7) Maak onderscheid tussen Iterator en ListIterator
Het verschil tussen Iterator en ListIterator is:
iterator | LijstIterator |
---|---|
De Iterator kan de array-elementen in voorwaartse richting doorlopen. | ListIterator kan de array-elementen zowel in achterwaartse als voorwaartse richting doorlopen. |
Het kan worden gebruikt in Wachtrij, Lijst en Set. | Het kan worden gebruikt in Lijst. |
Het kan alleen een verwijderbewerking uitvoeren. | Het kan bewerkingen voor toevoegen, verwijderen en instellen uitvoeren terwijl de verzameling wordt doorlopen. |
8) Wat is het verschil tussen Iterator en Enumeratie?
Het verschil tussen Iterator en Opsomming
iterator | Opsomming |
---|---|
De Iterator kan zowel verouderde als niet-verouderde elementen doorkruisen. | Opsomming kan alleen oudere elementen doorkruisen. |
De Iterator is faalsnel. | Opsomming is niet feilloos. |
De Iterator is erg traag in vergelijking met Enumeration. | Opsomming is snel vergeleken met Iterator. |
De Iterator kan een verwijderbewerking uitvoeren terwijl de verzameling wordt doorlopen. | De Enumeratie kan alleen traversebewerkingen op de verzameling uitvoeren. |
9) Definieer BlockingQueue
BlockingQueue is een interface die wordt gebruikt in Java die de wachtrij kan verlengen. Het biedt gelijktijdigheid in verschillende wachtrijbewerkingen zoals ophalen, invoegen, verwijderen, etc.
De wachtrij wacht tot deze niet leeg is op het moment dat er elementen worden opgehaald. BlockingQueue mag geen null-elementen bevatten. De implementatie van deze wachtrij is thread-safe.
De syntaxis van BlockingQueue is:
public interface BlockingQueue<E> extends Queue <E>
10) Leg de override equals()-methode uit
De equals-methode wordt gebruikt om de gelijkenis tussen twee objecten te controleren. Als de programmeur een object wil controleren op basis van de eigenschap, moet dit worden overschreven.
11) Wat is het verschil tussen Vergelijkbaar en Vergelijker?
Het verschil tussen Vergelijkbaar en Vergelijker is:
Vergelijkbaar | Comparator |
---|---|
Vergelijkbaar biedt de methode CompareTo() om elementen in te sorteren Java. | Comparator biedt de methode Compare() om elementen in te sorteren Java. |
Een vergelijkbare interface is aanwezig in het java.lang-pakket. | Vergelijkingsinterface is aanwezig in Java. util-pakket. |
De logica van het sorteren moet zich in dezelfde klasse bevinden waarvan u het object gaat sorteren. | De logica van het sorteren moet in een aparte klasse zitten om verschillende sorteringen te schrijven op basis van verschillende attributen van objecten. |
De klasse waarvan u de objecten wilt sorteren, moet de vergelijkbare interface implementeren. | De klasse waarvan u de objecten wilt sorteren, hoeft geen comparatorinterface te implementeren. |
Het biedt enkele sorteersequenties. | Het biedt meerdere sorteervolgordes. |
Deze methode kan de gegevens sorteren volgens de natuurlijke sorteervolgorde. | Deze methode sorteert de gegevens volgens de aangepaste sorteervolgorde. |
Het beïnvloedt de oorspronkelijke klasse. dat wil zeggen, de feitelijke klasse wordt gewijzigd. | Het heeft geen invloed op de oorspronkelijke klasse, dat wil zeggen dat de werkelijke klasse niet wordt gewijzigd. |
Wordt regelmatig in de API geïmplementeerd via Agenda, Wrapper-klassen, Datum en String. | Het is geïmplementeerd om instanties van klassen van derden te sorteren. |
Alle wrapper-klassen en String-klassen implementeren de vergelijkbare interface. | De enige geïmplementeerde klassen van Comparator zijn Collator en RuleBasedColator. |
12) Leg equals() uit met een voorbeeld
Equals() verifieert of het object number gelijk is aan het object, dat als argument wordt doorgegeven of niet.
De syntaxis van de equals() methode is:
public boolean equals(Object o)
Deze methode heeft twee parameters nodig: 1) elk object, 2) de retourwaarde. Het retourneert waar als het doorgegeven argument niet nul is en een object van een vergelijkbaar type is met dezelfde numerieke waarde.
Voorbeeld:
import java.lang.Integer; public class Test { public static void main(String args[]) { Integer p = 5; Integer q = 20; Integer r =5; Short s = 5; System.out.println(p.equals(q)); System.out.println(p.equals(r)); System.out.println(p.equals(s)); } }
13) Noem de voordelen van generieke inzameling
De voordelen van het gebruik van de generieke collectie zijn:
- Als de programmeurs generieke klassen gebruiken, hebben ze geen typecasting nodig.
- Het is typeveilig en kan worden gecontroleerd op het moment van compilatie.
- Het zorgt voor de stabiliteit van de code door fouten te detecteren tijdens het compileren.
14) Leg de methode uit om ArrayList naar Array en Array naar ArrayList te converteren
Programmeurs kunnen een Array naar ArrayList converteren met behulp van de asList()-methode van de Arrays-klasse. Het is een statische methode van de klasse Arrays die het List-object accepteert. De syntaxis van de methode asList() is:
Arrays.asList(item)
Java programmeurs kunnen ArrayList naar het List-object converteren met behulp van syntaxis:
List_object.toArray(new String[List_object.size()])
15) Geef een voorbeeld van ArrayList
Het voorbeeld van omgekeerde ArrayList is:
import java.util.ArrayList; class Test_ArrayList { public static void main(String[] args) { //Creating a generic ArrayList ArrayList<String> arlTest = new ArrayList<String>(); //Size of arrayList System.out.println("Size of ArrayList at creation: " + arlTest.size()); //Lets add some elements to it arlTest.add("D"); arlTest.add("U"); arlTest.add("K"); arlTest.add("E"); //Recheck the size after adding elements System.out.println("Size of ArrayList after adding elements: " + arlTest.size()); //Display all contents of ArrayList System.out.println("List of all elements: " + arlTest); //Remove some elements from the list arlTest.remove("D"); System.out.println("See contents after removing one element: " + arlTest); //Remove element by index arlTest.remove(2); System.out.println("See contents after removing element by index: " + arlTest); //Check size after removing elements System.out.println("Size of arrayList after removing elements: " + arlTest.size()); System.out.println("List of all elements after removing elements: " + arlTest); //Check if the list contains "K" System.out.println(arlTest.contains("K")); } }
16) Geef een voorbeeld van het sorteren van een array in aflopende volgorde
Het voorbeeld van het sorteren van een array in aflopende volgorde is:
package com.guru99; public class SelectionSortAlgo { public static void main(String a[]) { int[] myArray = {860,8,200,9}; System.out.println("------Before Sort-----"); printArray(myArray); selection(myArray);//sorting array using selection sort System.out.println("-----After Sort-----"); printArray(myArray); } public static void selection(int[] array) { for (int i = 0; i < array.length - 1; i++) { System.out.println("Sort Pass Number "+(i+1)); int index = i; for (int j = i + 1; j < array.length; j++) { System.out.println("Comparing "+ array[index] + " and " + array[j]); if (array[j] < array[index]){ System.out.println(array[index] + " is greater than " + array[j] ); index = j; } } int smallerNumber = array[index]; array[index] = array[i]; array[i] = smallerNumber; System.out.println("Swapping Elements: New Array After Swap"); printArray(array); } } static void printArray(int[] array){ for(int i=0; i < array.length; i++) { System.out.print(array[i] + " "); } System.out.println(); } }
17) Leg de basisinterfaces van de Java collecties raamwerk
Java Het verzamelraamwerk is een wortel van de collectiehiërarchie. Het vertegenwoordigt een groep objecten als zijn elementen. De Java programmeertaal biedt geen directe implementatie van een dergelijke interface.
- Set: Set is een verzameling zonder dubbele elementen. Het gebruikt hashtable voor het opslaan van elementen.
- Lijst: Lijst is een geordende verzameling die dubbele elementen kan bevatten. Het stelt ontwikkelaars in staat om alle elementen uit de inbox te benaderen. De lijst is als een array met een dynamische lengte.
- KAART: Het is een object dat sleutels aan waarden toewijst. Het mag geen dubbele sleutels bevatten. Elke sleutel kan aan ten minste één waarde worden toegewezen.
18) Wat zijn de kenmerken van Java Hashmap?
Kenmerken van Java Hash kaart zijn:
- De waarden kunnen in een kaart worden opgeslagen door een sleutel-waardepaar te vormen. De waarde kan worden opgehaald met behulp van de sleutel door deze door te geven aan de juiste methode.
- Als er geen element in de kaart bestaat, genereert deze een 'NoSuchElementException'.
- HashMap slaat alleen objectreferenties op. Daarom is het onmogelijk om primitieve gegevenstypen zoals double of int te gebruiken. Gebruik wrapper-klasse (zoals Integer of Double) in plaats daarvan.
19) Wat is een stapel?
Een stapel is een speciaal gedeelte van het computergeheugen waarin tijdelijke variabelen worden opgeslagen die door een functie zijn gemaakt. In stack worden variabelen gedeclareerd, opgeslagen en geïnitialiseerd tijdens runtime.
20) Wat is een gekoppelde lijst?
Een gekoppelde lijst is een gegevensstructuur waarin een verzameling items kan worden opgeslagen. Met andere woorden, gekoppelde lijsten kunnen worden gebruikt om meerdere objecten van hetzelfde type op te slaan. Elke eenheid of elk element van de lijst wordt een knooppunt genoemd. Een knooppunt in de gekoppelde lijst heeft zijn gegevens en het adres van het volgende knooppunt. Het is als een ketting. Gekoppelde lijsten worden gebruikt om grafieken en bomen te maken.
Java Collecties Interviewvragen en antwoorden voor ervaren
21) Geef een voorbeeld van ArrayList
Het voorbeeld van ArrayList is:
import java.util.ArrayList; class Test_ArrayList { public static void main(String[] args) { //Creating a generic ArrayList ArrayList<String> arlTest = new ArrayList<String>(); //Size of arrayList System.out.println("Size of ArrayList at creation: " + arlTest.size()); //Lets add some elements to it arlTest.add("D"); arlTest.add("U"); arlTest.add("K"); arlTest.add("E"); //Recheck the size after adding elements System.out.println("Size of ArrayList after adding elements: " + arlTest.size()); //Display all contents of ArrayList System.out.println("List of all elements: " + arlTest); //Remove some elements from the list arlTest.remove("D"); System.out.println("See contents after removing one element: " + arlTest); //Remove element by index arlTest.remove(2); System.out.println("See contents after removing element by index: " + arlTest); //Check size after removing elements System.out.println("Size of arrayList after removing elements: " + arlTest.size()); System.out.println("List of all elements after removing elements: " + arlTest); //Check if the list contains "K" System.out.println(arlTest.contains("K")); } }
22) Verklaar de gekoppelde lijst ondersteund door Java
Twee soorten gekoppelde lijsten ondersteund door Java zijn:
- Enkelvoudig gekoppelde lijst: Singly Linked List is een type gegevensstructuur. In een afzonderlijk gekoppelde lijst slaat elk knooppunt in de lijst de inhoud van het knooppunt op, evenals een verwijzing of verwijzing naar het volgende knooppunt in de lijst. Er wordt geen verwijzing of verwijzing naar het vorige knooppunt opgeslagen.
- Dubbel gelinkte lijsten: Dubbel gekoppelde lijsten zijn een speciaal type gekoppelde lijsten waarbij het doorlopen van de gegevenselementen in beide richtingen kan plaatsvinden. Dit wordt mogelijk gemaakt door twee links in elk knooppunt te hebben, één die linkt naar het volgende knooppunt en een andere die verbinding maakt met het vorige knooppunt.
23) Leg de methoden uit die door de Queue-interface worden geboden?
Methodes van Java Wachtrij-interface zijn:
Methode | Beschrijving |
---|---|
Booleaanse toevoeging(object) | Voegt het opgegeven element in de wachtrij in. Het retourneert waar als het een succes is. |
Booleaanse aanbieding(object) | Deze methode wordt gebruikt om het element in de wachtrij in te voegen. |
Object verwijderen () | Het haalt de wachtrijkop op en verwijdert deze. |
Object poll () | Het haalt de wachtrijkop op en verwijdert deze of retourneert null als deze leeg is. |
Object poll () | Het haalt de wachtrijkop op en verwijdert deze of retourneert null als deze leeg is. |
Objectelement () | Haalt de gegevens uit de wachtrij, maar verwijdert de kop niet. |
Object bekijken () | Haalt de gegevens op uit de wachtrij, maar verwijdert de kop ervan niet, of als de wachtrij leeg is, wordt null opgehaald. |
24) Noem de methoden die door de Stack-klasse worden geboden
Belangrijke methoden die door de Stack-klasse worden geboden, zijn:
- duw(): Duw het item in de stapel.
- leeg (): Met deze methode wordt vastgesteld of de stapel leeg is of niet.
- knal (): Deze Java Collection Framework-methode verwijdert het object van de stapel.
- zoekopdracht (): Deze methode zoekt naar items in de stapel.
- gluren (): Deze Java methode kijkt naar het stapelobject zonder het te verwijderen.
25) Definieer emptySet() in het Java collecties raamwerk
Methode emptySet() die de lege onveranderlijke set retourneert wanneer programmeurs nulelementen proberen te verwijderen. De set die wordt geretourneerd door emptySet() is serialiseerbaar. De syntaxis van deze methode is:
openbare statische finale Set legeSet()
26) Maak onderscheid tussen collectie en collecties
Het verschil tussen verzameling en verzamelingen is:
Collectie | Collecties |
---|---|
De collectie is een interface. | Collecties zijn een klasse. |
Het vertegenwoordigt een groep objecten als één enkele entiteit. | Het definieert verschillende hulpprogramma's voor verzamelobjecten. |
De verzameling is de hoofdinterface van het Java Collectiekader. | Collecties is een algemene nutsklasse. |
Deze interface wordt gebruikt om de collectiedatastructuren af te leiden. | Deze klasse bevat statische methoden om de gegevensstructuur te manipuleren. |
27) Definieer LinkedHashSet in het Java Verzamelkader?
LinkedHashSet is een subklasse van de klasse genaamd HashSet en implementeert de set-interface. Het is een goed geordende versie van HashSet die een dubbel gekoppelde lijst bijhoudt voor alle elementen.
28) Wat is het verschil tussen failfast en failsafe?
Faalbestendig | Failsafe |
---|---|
Het staat geen wijziging van de verzameling toe tijdens het itereren. | Het maakt het mogelijk om verzamelingen te wijzigen tijdens het itereren. |
Het kan ConcurrentModificationException genereren | Het kan geen enkele uitzondering genereren. |
Het gebruikt de originele collectie om de elementen te doorkruisen. | Er wordt gebruik gemaakt van een originele collectiekopie om de elementen te doorkruisen. |
Er is geen vereiste voor extra geheugen. | Er is een vereiste voor extra geheugen. |
29) Lijst met verzamelingsweergaven van een kaartinterface
Verzamelweergaven van de kaartinterface zijn: 1) sleutelsetweergave, 2) waardesetweergave en 3) invoersetweergave.
30) Wat zijn de voordelen van het Collectiekader in Java?
De voordelen van Collection Framework in Java zijn:
- Java Het verzamelframework biedt zeer efficiënte en effectieve datastructuren die de nauwkeurigheid en snelheid van het programma verbeteren.
- Het programma is ontwikkeld met de Java Het verzamelraamwerk is eenvoudig te onderhouden.
- Een ontwikkelaar kan klassen combineren met andere typen, waardoor de herbruikbaarheid van code wordt vergroot.
- De Java Het collectieframework stelt programmeurs in staat de primitieve collectietypen naar eigen inzicht aan te passen.
31) Wat is een goede manier om de collectieobjecten te sorteren? Java?
Een goede manier van sorteren Java collectieobjecten maakt gebruik van Comparable- en Comparator-interfaces. Een ontwikkelaar kan Collections.sort() gebruiken, de elementen worden gesorteerd op basis van de volgorde vermeld in CompareTo().
Wanneer een ontwikkelaar Collections, sort (Comparator) gebruikt, worden de objecten gesorteerd op basis van Compare() van de Comparator-interface.
32) Leg Vector uit Java
De vector is hetzelfde als een array. Het bevat componenten die toegankelijk zijn via een indexwaarde. Vectoren kunnen een verouderde methode bevatten die geen deel uitmaakt van het verzamelraamwerk.
33) Wat is het verschil tussen Set en Kaart?
Zet de | Wereldmap |
---|---|
Set behoort tot package-java.util. | De kaart hoort bij pakket-java.util. |
Het kan de verzamelinterface uitbreiden. | Het breidt de verzamelinterface niet uit. |
Het staat geen dubbele waarden toe. | Het staat dubbele waarden toe. |
Set kan slechts één nulwaarde sorteren. | De kaart kan meerdere nulwaarden sorteren. |
34) Definieer de woordenboekklasse
De klasse Dictionary is a Java klasse die de mogelijkheid heeft om sleutel-waardeparen op te slaan.
35) Definieer EnumSet
java.util.EnumSet is een Set-implementatie die kan worden gebruikt met enum-typen. EnumSet met alle elementen moet afkomstig zijn van één enum-type dat expliciet of impliciet is gespecificeerd. Het is niet gesynchroniseerd en null-sleutels zijn ook niet toegestaan. EnumSet biedt methoden zoals EnumSetof(E first, E… rest), complementOf(EnumSet s) en copyOf(Collection c).
36) Wat zijn de twee manieren om duplicaten uit ArrayList te verwijderen?
Er zijn twee manieren om duplicaten uit ArrayList te verwijderen:
- HashSet: Ontwikkelaar kan HashSet gebruiken om het dubbele element uit de ArrayList te verwijderen. Het nadeel is dat de invoegopdracht niet behouden kan blijven.
- GekoppeldeHashSet: Ontwikkelaars kunnen de volgorde van invoeging ook behouden door LinkedHashSet te gebruiken in plaats van HashSet.
37) Wat is IdentityHashMap?
IdentityHashMap is een klasse die Serializable, Clonable interfaces, Map implementeert en de AbstractMap-klasse uitbreidt. Het is ontworpen voor het geval waarin er behoefte is aan semantiek op het gebied van referentie-gelijkheid.
38) Wat is WeakHashMap?
WeakHashMap is een implementatie van de Java Kaart. Het wordt gebruikt om zwakke verwijzingen naar de sleutels op te slaan. Door te sorteren met behulp van deze kaart wordt een sleutel-waardepaar als afval verzameld. Er wordt niet naar de sleutel verwezen buiten WeakHashMap.
39) Wat zijn de methoden om de verzameling thread-safe te maken?
De methoden om de verzameldraad veilig te maken zijn:
- Collecties.synchronizedList(lijst);
- Collecties.synchronizedMap(map);
- Verzamelingen.synchronizedSet(set);
40) Uitleg Niet ondersteundOperaUitzondering
niet gesteundOperationException is een uitzondering die wordt gegenereerd op methoden die niet worden ondersteund door het daadwerkelijke verzamelingstype.
De ontwikkelaar maakt bijvoorbeeld een alleen-lezen lijst met behulp van "Collections.unmodifiableList(list)" en roept de methode call(), add() of remove() aan. Het zou duidelijk niet-ondersteund moeten zijnOperaUitzondering.
41) Noem de verzamelingsklassen die willekeurige elementen toegang geven tot de elementen ervan
Verzamelklassen die willekeurige toegang tot de elementen geven zijn: 1) ArrayList, 2) HashMap, 3) TreeMap en 4) Hashtable.
42) Leg het verschil uit tussen Queue en Deque.
Queue | deque |
---|---|
Het wordt een wachtrij met één einde genoemd | Het wordt een dubbele wachtrij genoemd |
Elementen in de wachtrij worden aan één kant toegevoegd of verwijderd | Elementen in de wachtrij die aan beide kanten worden toegevoegd, kunnen aan beide kanten worden toegevoegd en verwijderd |
Het is minder veelzijdig. | Het is veelzijdiger. |
43) Noem de implementerende Lijst- en Set-interface
Klasse-implementatie Lijstinterface: 1) ArrayList, 2) Vector en 3) LinkedList.
Klasse die Set-interface implementeert: 1) HashSet en 2) BoomSet.
44) Leg het ontwerppatroon uit dat door Iterator wordt gevolgd
De iterator volgt de details van het iterator-ontwerppatroon. Het biedt ontwikkelaars de mogelijkheid om door de objectcollecties te navigeren met behulp van een gemeenschappelijke interface zonder de implementatie ervan te kennen.
45) Wat is de peek() van de Queue-interface?
Peek () is een methode voor de wachtrij-interface. Het haalt alle elementen op, maar verwijdert de wachtrijkop niet. Als de wachtrij leeg is, retourneert deze methode null.
46) Wat is CopyOnWriteArrayList?
CopyOnWriteArrayList is een variant van ArrayList waarin bewerkingen zoals add en set worden geïmplementeerd door een kopie van de array te maken. Het is thread-safe en gooit daardoor geen ConcurrentModificationException. Deze ArrayLists staat alle elementen toe, inclusief null.
47) Maak onderscheid tussen ArrayList en LinkedList
Het verschil tussen ArrayList en LinkedList is:
ArrayLijst | Gekoppelde lijst |
---|---|
Het maakt gebruik van een dynamische array. | Er wordt gebruik gemaakt van een dubbelgekoppelde lijst. |
ArrayList verdient niet de voorkeur voor manipulatie. | LinkedList verdient de voorkeur voor manipulatie. |
ArrayList biedt willekeurige toegang. | LinkedList biedt geen willekeurige toegang. |
ArrayList slaat alleen objecten op, waardoor er minder geheugenruimte nodig is | LinkedList slaat zowel object- als adresobject op; daarom kost het meer geheugen. |
48) Leg de methoden van de iteratorinterface uit
Methoden voor de iteratorinterface zijn:
Methode | Beschrijving |
---|---|
publieke booleaanse hasNext() | Als de iterator elementen bevat, wordt true geretourneerd. Anders wordt false geretourneerd. |
openbaar object volgende() | Deze methode retourneert het element en verplaatst de aanwijzer naar de volgende waarde. |
openbare leegte verwijderen() | Deze Java methode kan de laatste elementen verwijderen die door de iterator zijn geretourneerd. Public void remove() wordt minder gebruikt. |
49) Wat zijn de methoden van de klasse HashSet?
Methoden van de HashSet-klasse zijn:
Methoden | Beschrijving |
---|---|
boolean add(Object o) | Deze methode voegt het vermeldingselement aan deze set toe als dit nog niet aanwezig is. |
booleaanse waarde bevat(Object o): | Het retourneert true als de set het opgegeven element bevat. |
leegte helder(): | Deze methode verwijdert set-elementen. |
boolean isLeeg(): | Het retourneert true in het geval dat de set geen elementen bevat. |
booleaanse verwijder(Object o): | Het verwijdert het opgegeven element uit de set. |
objectkloon(): | Deze methode retourneert een kopie van de HashSet-instantie: de elementen zelf worden niet gekloond. |
iterator iterator() | Het retourneert een iterator over de elementen in deze set. |
int-grootte(): | Het retourneert het aantal beschikbare elementen in de set. |
50) Wat zijn de methoden van Java TreeSet-klasse?
De methoden van Java TreeSet-klasse zijn:
Methoden | Descriptionen |
---|---|
boolean addAll (verzameling c) | Voeg alle elementen uit de opgegeven verzameling toe aan deze set. |
boolean bevat (Object o) | Retourneert waar als de set het vermeldingselement bevat. |
boolean isEmpty () | Deze Java methode retourneert true als deze set geen elementen bevat. |
boolean remove (Object o) | Verwijder het opgegeven element uit de set. |
ongeldig toevoegen(Object o) | Het voegt het opgegeven element toe aan de set. |
leegte duidelijk () | Deze Java methode verwijdert alle elementen uit de set. |
51) Leg gekoppelde HashSet uit
Java De klasse LinkedHashSet is een gekoppelde lijst en hashtabelimplementatie van de Set-interface. Het bevat unieke elementen die hetzelfde zijn als een HashSet. Gekoppelde HashSet in Java biedt ook optionele setbewerkingen waarmee de volgorde van invoeging kan worden gehandhaafd.
52) Wat zijn de belangrijke methoden die worden gebruikt in een gekoppelde lijst?
De belangrijke methoden die in de gekoppelde lijst worden gebruikt, zijn:
Methode | Beschrijving |
---|---|
boolean add(Object o) | Het wordt gebruikt om het opgegeven element aan het einde van de vector toe te voegen. |
boolean bevat (Object o) | Het is een methode die true retourneert als deze lijst het opgegeven element bevat. |
void add (int index, objectelement) | Voegt het element in bij het opgegeven element in de vector. |
void addFirst(Object o) | Het wordt gebruikt om het gegeven element aan het begin in te voegen. |
void addLast(Object o) | Het wordt gebruikt om het gegeven element aan het einde toe te voegen. |
Int-grootte() | Deze methode kan worden gebruikt om het totale aantal elementen in een lijst te retourneren. |
boolean remove (Object o) | Het kan de eerste keer dat het opgegeven element voorkomt uit deze lijst verwijderen. |
int indexOf(objectelement) | Deze Java methode retourneert de index met de eerste keer dat het vermeldingselement in deze lijst voorkomt, of -1. |
int lastIndexOf(objectelement) | Het is een Java methode die de index retourneert met de laatste keer dat het opgegeven element in deze lijst voorkomt, of -1. |
53) Noem verschillende klassen die beschikbaar zijn in sets
Er zijn verschillende klassen beschikbaar in sets: HashSet, TreeSetand en LinkedHashSet.
54) Lijst met beschikbare methoden in Java Wachtrij-interface
- Booleaanse toevoeging(object)
- Booleaanse aanbieding(object)
- object verwijderen()
- objectpeiling()
- objectelement()
- object kijkje()
55) Maak onderscheid tussen lijst en set.
Lijst | Zet de |
---|---|
Een geordende verzameling elementen | Een ongeordende verzameling elementen |
Behoudt de invoegvolgorde | De invoegvolgorde blijft niet behouden |
Dubbele waarden zijn toegestaan | Dubbele waarden zijn niet toegestaan |
Er kan een willekeurig aantal nulwaarden worden opgeslagen | Er kan slechts één nulwaarde worden opgeslagen |
ListIterator kan worden gebruikt om de lijst in elke richting te doorlopen | ListIterator kan niet worden gebruikt om een set te doorkruisen |
Bevat een oudere klasse genaamd vector | Bevat geen oudere klasse |
Java Collecties Interviewvragen en antwoorden voor meer dan 5 jaar ervaring
56) Leg voor elke lus uit met een voorbeeld
For-Each Loop is een andere vorm van for-lus die wordt gebruikt om de array te doorlopen. Het reduceert de code aanzienlijk, en er is geen gebruik van de index of beter gezegd de teller in de lus.
Voorbeeld van voor elke lus:
class UsingForEach { public static void main(String[] args) { String[] arrData = {"Alpha", "Beta", "Gamma", "Delta", "Sigma"}; //The conventional approach of using the for loop System.out.println("Using conventional For Loop:"); for(int i=0; i< arrData.length; i++){ System.out.println(arrData[i]); } System.out.println("\nUsing Foreach loop:"); //The optimized method of using the for loop - also called the foreach loop for (String strTemp : arrData){ System.out.println(strTemp); } } }
57) Leg de diamantoperator uit
Met de Diamond-operator kan de compiler de typeargumenten van de generieke klasse verzamelen. In Java SE, ontwikkelaar kan de geparameteriseerde constructor vervangen door een lege parameterset (<>), bekend als de diamantoperator.
58) Leg de randomaccess-interface uit
De RandomAccess-interface wordt gebruikt door List-implementaties om aan te geven dat ze snel ondersteunen.
59) Noem de verzamelingsklassen die de willekeurige toegangsinterface implementeren
Java.util-pakket heeft klassen die een willekeurige toegangsinterface kunnen implementeren: CopyOnWriteArrayList, Stack, ArrayList en Vector.
60) Hoe kan ik lid worden van meerdere ArrayLists?
De lijst biedt een addall()-methode waarin meerdere ArrayList voorkomen Java.
Beschouw bijvoorbeeld twee lijsten: 1) areaList en 2) secondAreaList. Een ontwikkelaar kan zich bij hen aansluiten met behulp van addall() zoals:
areaList.addAll(tweedeAreaList);
61) Leg de interface uit
Java.util.Deque is Java, een interface die Queue interface uitbreidt. Het biedt ondersteuning voor het invoegen en verwijderen van elementen aan beide uiteinden. Deze Queue wordt ook wel een double-ended queue genoemd.
62) Leg Linkedhashmap uit
LinkedHashMap is de implementatie van de kaartinterface. Het kan ook de HashMap-klasse uitbreiden. Daarom maakt LinkedHashMap, net als HashMap, dit mogelijk Java ontwikkelaars kunnen één nulsleutel en meer dan één nulwaarde toestaan.
63) Leg methoden uit om elementen uit ArrayList te verwijderen
De methoden om elementen uit ArrayList te verwijderen zijn:
Methode | Beschrijving |
---|---|
Doorzichtig() | Deze methode verwijdert de elementen uit ArrayList. |
verwijder(int index) | Deze methode van ArrayList kan het element op een bepaalde positie verwijderen. |
verwijderen (Object o) | Het kan de eerste keer dat het vermeldingselement voorkomt uit de ArrayList verwijderen. |
Verwijder alles() | Het kan de lijst met elementen verwijderen die zich in een bepaalde verzameling bevinden. |
removeIf(Predikaat filter) | Deze methode verwijdert elementen die voldoen aan de vermelding van een predikaat. |
64) Leg de kaart uit. vermelding op kaart
Map.entry is een Java interface van java.util. Het heeft een geneste interface in Map. Deze interface moet worden gekwalificeerd door de naam van de klasse of interface, waarvan het lid is. Daarom is het gekwalificeerd als een Map. Entry. Het vertegenwoordigt een sleutel- en waardepaar dat een element van een Map kan vormen.
Deze methode retourneert een weergave van de collectie. Beschouw cityMap bijvoorbeeld als een kaart. De ontwikkelaar kan entrySet() gebruiken om de ingestelde weergave van de kaart te krijgen met een element Map.Entry. Programmeurs kunnen ook getKey() en getValue() van Map.Entry gebruiken om het sleutelpaar en de waarde van de kaart op te halen.
65) Welke methode wordt gebruikt om een array in oplopende volgorde te sorteren?
Java collection framework-methode Collections.sort() wordt gebruikt om een array in oplopende volgorde te sorteren.
66) Hoe meet ik de prestaties van een ArrayList?
De prestaties van ArrayList kunnen worden gemeten door:
- Een element toevoegen: De ontwikkelaar kan een element aan het einde van ArrayList toevoegen met behulp van de add(E e)-methode. Het is O(1). In het slechtste scenario zou het naar O(n) kunnen gaan. Dit kan gebeuren als de ontwikkelaar meer elementen toevoegt dan de arraycapaciteit.
- Een element ophalen: Ontwikkelaars hebben toegang tot de array-index met behulp van get(int index). In dit geval kunnen de prestaties worden gemeten met behulp van ArrayList get() is O(1).
- Een element verwijderen: Als de ontwikkelaars elementen verwijderen met behulp van remove(int index), kunnen de prestaties van ArrayList worden berekend met behulp van de remove(int index)-bewerking via de O(n – index)-methode.
67) Leg de LinkedList-klasse uit
LinkedList-klasse in Java implementeert Deque en List met behulp van een dubbel gekoppelde lijst. Er is een private class node in een dubbel gekoppelde lijst die de structuur ervan biedt. Het heeft ook een itemvariabele voor het vasthouden van de waarde en verwijzing naar Node-klasse. Dit kan worden gebruikt voor het verbinden van de volgende en vorige nodes.
68) Geef een voorbeeld van Hashmap
Het voorbeeld van Hashmap is:
import java.util.HashMap; import java.util.Map; public class Sample_TestMaps{ public static void main(String[] args){ Map<String, String> objMap = new HashMap<String, String>(); objMap.put("Name", "Suzuki"); objMap.put("Power", "220"); objMap.put("Type", "2-wheeler"); objMap.put("Price", "85000"); System.out.println("Elements of the Map:"); System.out.println(objMap); } }
69) Hoe de kaart herhalen?
De ontwikkelaar kan de kaart niet rechtstreeks itereren, maar deze interface heeft twee methoden die een kaartset weergeven. Deze methoden zijn:
- Set >invoerSet(): Het is een methode die een set retourneert waarvan de vermeldingen op de kaart worden vermeld. Er wordt over het algemeen bezwaar gemaakt tegen deze vermeldingen, die van het type Map zijn. Binnenkomst.
- Set sleutelbos(): Deze Java methode retourneert een set met de kaartsleutel.
70) Leg Treemap uit Java
TreeMap is een klasse die de kaartinterface LinkedHashMap en HashMap implementeert. Het kan ook de NavigableMap-interface implementeren en de AbstractMap-klasse uitbreiden.
71) Wat is het verschil tussen Hashmap en Hashtable?
Hash kaart | hashtabel |
---|---|
Het is niet gesynchroniseerd. | Het is gesynchroniseerd. |
Hash kaart staat één sleutel toe als nulwaarde. | HashTable staat geen nulwaarden toe. |
Iterator wordt gebruikt om HashMap te doorkruisen. | Iterator of Enumerator wordt gebruikt voor het doorlopen van een HashTable. |
Het kan worden gebruikt voor zowel HashTable als HashMap en is feilloos. | Het kan worden gebruikt met HashTable en is fail-safe. |
HashMap presteert sneller dan de HashTable. | Hashtable is niet veel sneller in vergelijking met HashMap. |
72) Leg de interne werking van HashSet uit Java
HashIngesteld Java gebruikt intern HashMap om elementen op te slaan. Het kan ook unieke waarden opslaan zonder dubbele waarden.
In Java, kan de HashSet-ontwikkelaar een add(E e)-methode hebben waarbij alleen het element als parameter moet worden toegevoegd. Het accepteert het sleutel- en waardepaar niet.
73) Leg de Big-O-notatie uit met een voorbeeld
De Big-O-notatie geeft de prestaties van een algoritme weer als het aantal elementen in ArrayList. Een ontwikkelaar kan de Big-O-notatie gebruiken om de verzamelingsimplementatie te kiezen. Het is gebaseerd op prestaties, tijd en geheugen.
ArrayList get(index i) is bijvoorbeeld een methode om een constante-tijdbewerking uit te voeren. Het is niet afhankelijk van het totale aantal elementen dat beschikbaar is in de lijst. Daarom is de prestatie in Big-O-notatie O(1).
74) Leg de best practices uit in Java Collectiekader
De best practices in Java Collectiekader zijn:
- De keuze voor het juiste type collectie hangt af van de behoefte.
- Vermijd het opnieuw hashen of vergroten/verkleinen door het totale aantal elementen te schatten dat in verzamelingsklassen moet worden opgeslagen.
- Schrijf een Java programma in termen van interfaces. Dit zal de ontwikkelaar helpen om zijn implementatie in de toekomst moeiteloos te veranderen.
- Een ontwikkelaar kan Generics gebruiken voor typeveiligheid.
- Gebruik onveranderlijke klassen gegeven door de Java Ontwikkelingskit. Vermijd implementatie van equals() en hashCode() voor aangepaste klassen.
- Een programmeur zou de Collections utility class moeten gebruiken voor algoritmes of om read-only, synchroon of lege collecties te krijgen. Dit zal de herbruikbaarheid van code verbeteren met een lage onderhoudbaarheid.
75) Leg verschillende soorten wachtrijen uit Java
Er zijn drie soorten wachtrijen Java:
- Prioriteits-rij: Het is een speciaal type wachtrij waarin elementen worden gesorteerd op basis van hun natuurlijke volgorde of aangepaste comparator.
- Circulaire wachtrij: Het is een type Queue waarin gebruikersbewerkingen worden uitgevoerd op basis van de FIFO-methode. Het laatste element wordt verbonden met de eerste positie om een cirkel te maken.
- Double-beëindigde wachtrij: Een double-ended queue is een abstract datatype dat een queue generaliseert. De elementen in deze queue kunnen worden toegevoegd of verwijderd uit head of tail.
76) Wat is het verschil tussen stapel en wachtrij?
Opstapelen | Queue |
---|---|
Het werkingsprincipe van de stapel is LIFO. | Het werkende principe van de wachtrij is FIFO. |
Eén uiteinde wordt gebruikt om elementen in te voegen of te verwijderen. | Het ene uiteinde wordt gebruikt om het invoegen uit te voeren, en het andere uiteinde wordt gebruikt voor het verwijderen van elementen. |
Er wordt gebruik gemaakt van één aanwijzer. | Het gebruikt twee pointers in een eenvoudige wachtrij. |
Er bestaat geen enkele variant. | Het heeft varianten zoals prioriteitswachtrij, cirkelvormige wachtrij, dubbel beëindigde wachtrij. |
Het is gemakkelijk te gebruiken. | Het is niet gemakkelijk te gebruiken. |
77) Wat is het verschil tussen array en stapel?
Het verschil tussen array en stapel is:
reeks | Opstapelen |
---|---|
Het is een verzameling elementen die door de index worden geïdentificeerd. | Het is een verzameloperatie die als push- en pop-operaties fungeert. |
Het heeft elementen van gegevenstypen die hetzelfde zijn. | Het heeft elementen van gegevenstypen die verschillend zijn. |
Elementen kunnen met behulp van willekeurige toegang worden verwijderd of toegevoegd aan de matrix. | Elementen kunnen met behulp van de LIFO-bewerking aan een stapel worden toegevoegd of verwijderd. |
78) Iterator() definiëren
De Iterator() is een interface die methoden biedt om Collection te itereren. Iterator kan de plaats van opsomming innemen Java. Hiermee kan de aanroeper elementen uit de verzameling verwijderen. De methode biedt een generieke manier voor traversal met behulp van elementen van de verzameling en het implementeren van het iteratorontwerppatroon.
79) Wat zijn de verschillende manieren om een lijst te herhalen?
Java verzameling Framework-programmeurs kunnen op twee manieren door een lijst heen itereren: 1) Met behulp van iterator, en 2) deze voor elke lijst gebruiken lus.
80) Wat zijn de voordelen van de stapel?
De voordelen van de stapel zijn:
- Het helpt u de gegevens te beheren in een Last In First Out (LIFO)-methode, wat niet mogelijk is met de gekoppelde lijst en array.
- Wanneer een functie wordt aangeroepen, worden de lokale variabelen opgeslagen in een stapel. Zodra de functie wordt geretourneerd, wordt deze automatisch vernietigd.
- Een stapel wordt gebruikt als een variabele buiten die functie niet wordt gebruikt.
- Hiermee kunt u bepalen hoe geheugen wordt toegewezen en ongedaan gemaakt.
- Stack ruimt het object automatisch op.
- Niet gemakkelijk beschadigd
- Variabelen kan niet worden vergroot of verkleind.
Deze interviewvragen zullen ook helpen bij je viva (oralen)