Fragen und Antworten zum Vorstellungsgespräch zu Java Collections [Für Neueinsteiger und Erfahrene]
Veröffentlicht: 2020-12-16Wenn Sie sich in Ihrem Grundstudium mit Java befasst oder mit Java gearbeitet haben, müssen Sie das Java-Collection-Framework gut kennen. Für Anfänger, die gerade ihre Java-Reise begonnen haben, ist das Collection-Framework eine einheitliche Architektur, die entwickelt wurde, um eine Gruppe (Sammlung) von Objekten zu speichern und zu manipulieren.
Im Wesentlichen stellt eine „Sammlung“ eine einzelne Gruppe von Objekten dar. Eine Java-Sammlung umfasst Schnittstellen, Klassen (ArrayList, Vector, Stack und Hashtable usw.) und Algorithmen mit einer gebrauchsfertigen Architektur zum Speichern und Handhaben von Daten.
In diesem Artikel werfen wir einen Blick auf die am häufigsten gestellten Fragen in Vorstellungsgesprächen für Java Collections. Wir haben eine Liste der grundlegenden Fragen erstellt, die in Vorstellungsgesprächen häufig gestellt werden, wenn Kandidaten für Java-Profile interviewt werden. Dies sollte Ihnen helfen zu verstehen, auf welche Art von Fragen Sie sich in Ihrem nächsten Vorstellungsgespräch freuen können.
Interviewfragen und Antworten zu Java-Sammlungen
1. Welchen Vorteil bietet die Verwendung des Collections-Frameworks?
Java Collections enthält sowohl Generics- als auch Concurrent-Collection-Klassen für Thread-sichere Operationen. Außerdem ist es mit blockierenden Schnittstellen zusammen mit ihren Implementierungen in gleichzeitigen Java-Paketen ausgestattet. Hier sind einige Vorteile des Java-Collections-Frameworks:
Es erleichtert die Wiederverwendbarkeit und Interoperabilität von Code.

Die Verwendung von Kernsammlungsklassen reduziert den Entwicklungsaufwand und die Zeit erheblich.
Die mit JDK ausgelieferten Collection-Klassen reduzieren den Aufwand für die Codepflege.
2. Unterscheiden Sie zwischen Array und Collection.
Obwohl Array und Sammlung zum Speichern von Objekten und zum Bearbeiten von Daten verwendet werden, weisen sie einige grundlegende Unterschiede auf:
- Sie können die Länge eines Arrays nicht gemäß Ihren Laufzeitanforderungen erhöhen oder verringern – Arrays haben eine feste Größe. Sie können jedoch die Größe einer Sammlung entsprechend Ihren Skalierungsanforderungen ändern.
- Ein Array kann nur homogene (ähnliche oder gleiche) Objekte speichern, während eine Sammlung eine heterogene Gruppe von Objekten speichern kann.
- Während Arrays keine gebrauchsfertigen Methoden (Suchen, Sortieren, Einfügen usw.) für Benutzeranforderungen bieten, enthalten Sammlungen immer gebrauchsfertige Methoden.
3. Welche Rolle spielen Generika im Collections-Framework?
Mit Generics können Sie den Objekttyp angeben oder definieren, den eine Sammlung speichern kann. Wenn Sie versuchen, ein Element eines anderen Typs hinzuzufügen, zeigt Generics einen Kompilierungsfehler an. Indem während der Kompilierung ein Fehler angezeigt wird, hilft es, ClassCastException zur Laufzeit zu verhindern. Da Generics außerdem die Verwendung von Casting und instanceof-Funktion überflüssig macht, wird der Code sauber und präzise.
4. Benennen Sie die Schnittstellen des Collections-Frameworks.
Hier sind die fünf Kernschnittstellen im Collections-Framework:
Sammlungsschnittstelle – Sie ist die Grundlage der Java-Sammlungshierarchie. Die meisten Collections in Java werden von der Collections-Schnittstelle geerbt.
Listenschnittstelle – Es ist ein erweitertes Array, das geordnete Elemente zusammen mit ihren Duplikaten enthält. Diese Schnittstelle unterstützt die indexbasierte Suche. Sie können also auf jedes Element aus seinem Index zugreifen. Es wird durch die Verwendung verschiedener Klassen wie ArrayList, LinkedList usw. implementiert.
Set -Schnittstelle – Es ist eine Sammlungsklasse, die keine doppelten Elemente enthalten kann. Im Gegensatz zu List unterstützt es keine indexbasierte Suche und definiert keine Reihenfolge für die Elemente. Set modelliert die mathematische Set-Abstraktion und wird durch Klassen wie HashSet, TreeSet, LinkedHashSet usw. implementiert.
Kartenschnittstelle – Es ist eine zweidimensionale Datenstruktur, die Daten in Schlüssel-Wert-Paaren speichert. Während der Schlüssel ein eindeutiger Hashcode ist, bezeichnet der Wert das Element. Eine Karte darf keine doppelten Schlüssel/Elemente haben.
Warteschlangenschnittstelle – Diese Schnittstelle ordnet das Element im First In First Out (FIFO)-Ansatz an. Daher werden Elemente in der Warteschlangenschnittstelle vom vorderen Ende entfernt und vom hinteren Ende hinzugefügt.
Lesen Sie auch: Java-Projekte codieren, kompilieren und ausführen
5. Wann sollten Sie die Methode equals() in Java überschreiben?
Während die anfängliche Implementierung der Methode equals() prüft, ob zwei Objekte ähnlich sind, ist es notwendig, die Methode equals() zu überschreiben, wenn Sie die Objekte basierend auf ihren Eigenschaften vergleichen möchten.
6. Ist es vorteilhaft, die Eigenschaftendatei zu verwenden?
Ja, die Verwendung der Eigenschaftendatei in Java bietet einen großen Vorteil – wenn Sie die Werte in dieser Datei ändern, wird dies automatisch widergespiegelt, ohne dass die Java-Klasse neu kompiliert werden muss. Daher wird die Eigenschaftendatei hauptsächlich zum Speichern von Informationen verwendet, die sich ändern können (z. B. Benutzername und Passwörter). Sie ermöglicht eine einfache Verwaltung einer Java-Anwendung.
7. Welche Funktion hat der Iterator im Collection-Framework?
Der Iterator ist eine Schnittstelle, die im Paket java.util enthalten ist. Der Iterator, auch als universeller Java-Cursor bekannt, hilft beim Iterieren einer Sammlung von Objekten. Der Iterator lässt Sie eine Sammlung von Objekten einzeln übergeben und unterstützt READ- und REMOVE-Operationen. Es ist weit verbreitet, da Iterator-Methodennamen einfach implementiert werden können.
8. Wie können Sie die Collection-Objekte sortieren?
Im Collections-Framework wird die Sortierung normalerweise mithilfe der Comparable- und Comparator -Schnittstellen implementiert. Wenn Sie die Collections.sort()-Methode verwenden, werden die Elemente basierend auf der natürlichen Reihenfolge sortiert, die in der CompareTo()-Methode angegeben ist. Wenn Sie jedoch die Collections.sort(Comparator)-Methode verwenden, werden die Elemente gemäß der Compare()-Methode der Comparator-Schnittstelle sortiert.
Lesen Sie: Java-Swing-Projekt

9. Ist es möglich, eine ArrayList in ein Array und ein Array in eine ArrayList umzuwandeln?
Ja, das ist möglich. Sie können ein Array in eine ArrayList umwandeln, indem Sie die asList()-Funktion der Array-Klasse verwenden. Die Syntax dafür lautet wie folgt:
Arrays.asList(item)
Sie können eine ArrayList mithilfe der Funktion toArray() der Klasse ArrayList wie folgt in ein Array konvertieren:
List_object.toArray(neuer String[List_object.size()])
10. Wie kann man eine Liste umkehren?
Wie werden Sie eine ArrayList umkehren?
Sie können eine ArrayList mit der reverse()-Funktion der Collections-Klasse umkehren. Die Syntax dafür lautet wie folgt:
public static void reverse (Sammlung c)
11. Was ist „BlockingQueue“?
Die BlockingQueue - Schnittstelle ist im java.util.concurrent - Paket enthalten . Sein Hauptzweck besteht darin, die Flusssteuerung zu verbessern, indem das Blockieren immer dann aktiviert wird, wenn ein Thread versucht, eine leere Warteschlange aus der Warteschlange zu entfernen oder eine vorhandene volle Warteschlange einzureihen. Die BlockingQueue-Schnittstelle akzeptiert keine Nullwerte, und wenn Sie versuchen, einen Nullwert einzufügen, wird eine NullPointerException angezeigt.
12. Erklären Sie „Prioritätswarteschlange“.
Eine Prioritätswarteschlange ist ein abstrakter Datentyp wie eine Standardwarteschlange oder eine Stapeldatenstruktur. In dieser Warteschlange hat jedoch jedes Element eine einzigartige Funktion namens „Priorität“. Da es auf einem Prioritätsspeicher basiert, bedient die Prioritätswarteschlange unabhängig von ihrer Einfügereihenfolge das Element mit hoher Priorität vor einem Element mit niedriger Priorität. In einer Prioritätswarteschlange werden die Elemente entweder gemäß der natürlichen Reihenfolge oder durch einen Komparator geordnet, der zum Zeitpunkt des Warteschlangenaufbaus verwendet wird (abhängig davon, welchen Konstruktor Sie verwenden).
13. Wie speichert die Klasse HashSet Elemente?
Die HashSet-Klasse ist ein Mitglied des Java Collections-Frameworks, das die AbstractSet-Klasse erbt und die Set-Schnittstelle implementiert.
HashSet implementiert eine Hashtable sowohl zum Erstellen als auch zum Speichern einer Sammlung von Elementen. Eine Hashtable ist eine Instanz der HashMap-Klasse, die einen Hashing-Mechanismus verwendet, um Daten in einem HashSet zu speichern. Hashing bezieht sich auf die Technik der Umwandlung von Informationen in einen eindeutigen Wert, der als Hash-Code bekannt ist. Der Hash-Code indiziert die Daten, die dem eindeutigen Schlüssel zugeordnet sind.
14. Ist es möglich, einem TreeSet oder HashSet ein Null-Element hinzuzufügen?
Während Sie in einem HashSet nur ein Nullelement hinzufügen können, ist dies in einem TreeSet nicht möglich, da es eine NavigableMap zum Speichern der Elemente verwendet. Die NavigableMap ist ein Untertyp von SortedMap, der keine Nullwerte akzeptiert/unterstützt. Wenn Sie ein Nullelement in ein TreeSet einfügen, wird eine NullPointerException ausgelöst.
15. Was macht die Funktion emptySet()?
In Java wird Collections.emptySet() verwendet, um die leere unveränderliche Menge zurückzugeben, indem alle Nullelemente entfernt werden. Hier ist die Syntax zum Deklarieren eines emptySet():
public static final <T> Set<T> emptySet()
16. Warum erweitert das Map-Interface nicht das Collection-Interface?
Während die Map-Schnittstelle einer Schlüssel-Wert-Paar-Struktur folgt, speichert die Collection-Schnittstelle eine Sammlung von Objekten auf strukturierte Weise mit einem definierten Zugriffsmechanismus. Map erweitert die Collection-Schnittstelle nicht, da die add(E e)-Funktion der Collection-Schnittstelle das Schlüssel-Wert-Paar-Modell der put(K key, V value)-Funktion von Map nicht unterstützt.
17. Benennen Sie die verschiedenen Sammlungsansichten, die durch die Kartenschnittstelle erweitert werden.
Die Map-Schnittstelle bietet drei Ansichten von Schlüssel-Wert-Paaren, nämlich:
- Ansicht Schlüsselsatz
- Wertesatzansicht
- Eintragssatzansicht
18. Listen Sie die Kernfunktionen von Java Hashmap auf.
Die grundlegenden Funktionen von Hashmap sind:
- Sie können die Elemente speichern, indem Sie Schlüssel-Wert-Paare bilden, und den Wert abrufen, indem Sie den Schlüssel an die richtige Methode übergeben.
- Es zeigt NoSuchElementException an, wenn kein Element in der Map vorhanden ist.
- Es speichert nur Objektreferenzen, was es unmöglich macht, primitive Datentypen wie double oder int zu verwenden. Stattdessen können Sie eine Wrapper-Klasse wie Integer oder Double verwenden.
Muss gelesen werden: Fragen und Antworten zu Java-Interviews
19. Definiere „Stapel“.

In Java bezeichnet ein Stapel einen bestimmten Bereich im Speicher eines Computers, der temporäre Variablen enthält, die von einer Funktion erstellt wurden. Variablen werden zur Laufzeit in einem Stack deklariert, gespeichert und initialisiert.
20. Definiere „Big-O-Notation“.
Die Big-O-Notation definiert die Leistung eines Algorithmus in Bezug auf die Anzahl der Elemente in einer Datenstruktur. Sammlungsklassen sind Datenstrukturen, und daher müssen Sie die Big-O-Notation verwenden, um zu entscheiden, welche Sammlungsimplementierung basierend auf Arbeitsspeicher, Zeit und Leistung verwendet werden soll.
Melden Sie sich für Software Engineering-Kurse an den besten Universitäten der Welt an. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.
Fazit
Wenn Sie mehr über Java und die Full-Stack-Softwareentwicklung erfahren möchten, schauen Sie sich das Executive PG-Programm in Full-Stack-Softwareentwicklung von upGrad & IIIT-B an, das für Berufstätige konzipiert ist und mehr als 500 Stunden strenges Training bietet, 9+ Projekte und Aufgaben, IIIT-B-Alumni-Status, praktische praktische Abschlussprojekte und Arbeitsunterstützung bei Top-Unternehmen.
