80 Java Collezioni Intervista Domande e risposte (2025)
Java Collezioni Interviste Domande e risposte per le matricole
1) In cosa consiste il framework Java?
Un framework è un'architettura diffusa e già pronta che contiene un set di classi e interfacce.
2) In cosa consiste il framework Collection Java?
Collection Framework è un raggruppamento di classi e interfacce utilizzato per archiviare e gestire gli oggetti. Fornisce varie classi come Vector, ArrayList, HashSet, Stack, ecc. Java Il framework di raccolta può essere utilizzato anche per interfacce come Queue, Set, List, ecc.
3) Spiegare la classe Collezioni
java.util.Collections è una classe composta da metodi statici che operano su raccolte. Contiene algoritmi polimorfici per operare su collezioni, “wrapper”. Questa classe contiene metodi per algoritmi, come l'ordinamento binario, la ricerca, il mescolamento, ecc.
4) Cos'è l'hashCode()?
L'hashCode() è un metodo che restituisce un codice hash intero.
5) Distinguere tra ArrayList e Vector nel file Java quadro di raccolta.
Lista di array | vettore |
---|---|
ArrayList non può essere sincronizzato. | Il vettore può essere sincronizzato. |
Non è una classe legacy. | È una classe legacy. |
Può aumentare le sue dimensioni del 50% rispetto alla dimensione dell'array. | Può aumentare le sue dimensioni raddoppiando la dimensione dell'array. |
ArrayList non è thread-safe. | Vector è un thread-safe. |
6) In cosa consiste ArrayList Java?
Lista di array è una struttura dati che può essere estesa per accogliere elementi aggiuntivi al suo interno e ridursi a dimensioni più piccole quando gli elementi vengono rimossi. È una struttura dati molto importante utile per gestire il comportamento dinamico degli elementi.
7) Distinguere tra Iterator e ListIterator
La differenza tra Iterator e ListIterator è:
Iteratore | ListIterator |
---|---|
L'Iterator può attraversare gli elementi dell'array nella direzione in avanti. | ListIterator può attraversare gli elementi dell'array sia in avanti che all'indietro. |
Può essere utilizzato in Coda, Elenco e Set. | Può essere utilizzato in List. |
Può eseguire solo l'operazione di rimozione. | Può eseguire operazioni di aggiunta, rimozione e impostazione durante l'attraversamento della raccolta. |
8) Qual è la differenza tra Iterator ed Enumerazione?
La differenza tra Iterator ed Enumerazione
Iteratore | Enumerazione |
---|---|
L'Iterator può attraversare sia elementi legacy che non legacy. | L'enumerazione può attraversare solo elementi legacy. |
L'Iterator è fail-fast. | L'enumerazione non è fail-fast. |
L'Iterator è molto lento rispetto all'Enumerazione. | L'enumerazione è veloce rispetto a Iterator. |
L'Iterator può eseguire l'operazione di rimozione mentre attraversa la raccolta. | L'enumerazione può eseguire solo operazioni di attraversamento della raccolta. |
9) Definire BlockingQueue
BlockingQueue è un'interfaccia utilizzata in Java che può estendere la coda. Fornisce concorrenza in varie operazioni di coda come recupero, inserimento, eliminazione, ecc.
La coda attende di diventare non vuota al momento del recupero di qualsiasi elemento. BlockingQueue non deve contenere elementi null. L'implementazione di questa coda è thread-safe.
La sintassi di BlockingQueue è:
public interface BlockingQueue<E> extends Queue <E>
10) Spiegare il metodo override equals()
Il metodo equals viene utilizzato per verificare la somiglianza tra due oggetti. Nel caso in cui il programmatore desideri controllare un oggetto in base alla proprietà, è necessario sovrascriverlo.
11) Qual è la differenza tra Comparabile e Comparatore?
La differenza tra comparabile e comparatore è:
paragonabile | Comparatore |
---|---|
Comparable fornisce il metodo compareTo() per ordinare gli elementi Java. | Il comparatore fornisce il metodo compare() per ordinare gli elementi Java. |
Un'interfaccia comparabile è presente nel pacchetto java.lang. | L'interfaccia del comparatore è presente in Java. pacchetto di utilità. |
La logica dell'ordinamento deve trovarsi nella stessa classe di cui si intende ordinare l'oggetto. | La logica dell'ordinamento dovrebbe essere in una classe separata per scrivere ordinamenti diversi in base a diversi attributi degli oggetti. |
La classe di cui si desidera ordinare gli oggetti deve implementare l'interfaccia comparabile. | La classe di cui vuoi ordinare gli oggetti non ha bisogno di implementare un'interfaccia di comparazione. |
Fornisce singole sequenze di ordinamento. | Fornisce più sequenze di ordinamento. |
Questo metodo può ordinare i dati secondo l'ordinamento naturale. | Questo metodo ordina i dati in base all'ordinamento personalizzato. |
Colpisce la classe originale. cioè, la classe effettiva viene modificata. | Non influisce sulla classe originale, ovvero la classe effettiva non viene modificata. |
Implementato frequentemente nell'API da Calendar, classi Wrapper, Date e String. | È implementato per ordinare istanze di classi di terze parti. |
Tutte le classi wrapper e la classe String implementano l'interfaccia comparabile. | Le uniche classi implementate di Comparator sono Collator e RuleBasedColator. |
12) Spiega equals() con l'esempio
Equals() verifica se l'oggetto numero è uguale all'oggetto passato come argomento oppure no.
La sintassi del metodo equals() è:
public boolean equals(Object o)
Questo metodo accetta due parametri 1) qualsiasi oggetto, 2) valore restituito. Restituisce vero se l'argomento passato non è null ed è un oggetto di tipo simile avente lo stesso valore numerico.
Esempio:
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) Elencare i vantaggi della raccolta generica
I vantaggi derivanti dall'utilizzo della raccolta generica sono:
- Se i programmatori utilizzano una classe generica, non richiedono il typecasting.
- È indipendente dai tipi e può essere controllato al momento della compilazione.
- Fornisce la stabilità del codice rilevando i bug al momento della compilazione.
14) Spiegare il metodo per convertire ArrayList in Array e Array in ArrayList
I programmatori possono convertire un Array in ArrayList utilizzando il metodo asList() della classe Arrays. È un metodo statico della classe Arrays che accetta l'oggetto List. La sintassi del metodo asList() è:
Arrays.asList(item)
Java i programmatori possono convertire ArrayList nell'oggetto List utilizzando la sintassi:
List_object.toArray(new String[List_object.size()])
15) Fornisci un esempio di ArrayList
L'esempio di ArrayList inverso è:
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) Fornisci un esempio per ordinare un array in ordine decrescente
L'esempio di ordinamento di un array in ordine decrescente è:
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) Spiegare le interfacce di base di Java quadro delle collezioni
Java il framework della raccolta è una radice della gerarchia della raccolta. Rappresenta un gruppo di oggetti come suoi elementi. IL Java il linguaggio di programmazione non fornisce un'implementazione diretta di tale interfaccia.
- Set: Set è una raccolta che non ha elementi duplicati. Utilizza la tabella hash per memorizzare gli elementi.
- Lista: List è una raccolta ordinata che può contenere elementi duplicati. Consente agli sviluppatori di accedere a qualsiasi elemento dalla sua posta in arrivo. L'elenco è come un array con una lunghezza dinamica.
- CARTA GEOGRAFICA: È un oggetto che mappa le chiavi sui valori. Non può contenere chiavi duplicate. Ciascuna chiave può essere mappata su almeno un valore.
18) Quali sono le caratteristiche di Java Mappa hash?
Caratteristiche principali dell'app Java Mappa hash siamo:
- I valori possono essere archiviati in una mappa formando una coppia chiave-valore. Il valore può essere recuperato utilizzando la chiave passandola al metodo corretto.
- Se non esiste alcun elemento nella mappa, verrà generata una "NoSuchElementException".
- HashMap memorizza solo riferimenti a oggetti. Ecco perché è impossibile usare tipi di dati primitivi come double o int. Usa una classe wrapper (come Integer o Double) anziché.
19) Cos'è una pila?
Uno stack è un'area speciale della memoria del computer che memorizza le variabili temporanee create da una funzione. Nello stack, le variabili vengono dichiarate, archiviate e inizializzate durante il runtime.
20) Cos'è la lista collegata?
Un elenco collegato è una struttura dati che può memorizzare una raccolta di elementi. In altre parole, gli elenchi concatenati possono essere utilizzati per memorizzare più oggetti dello stesso tipo. Ogni unità o elemento della lista viene definito nodo. Un nodo nell'elenco Collegato ha i suoi dati e l'indirizzo del nodo successivo. È come una catena. Le liste collegate vengono utilizzate per creare grafici e alberi.
Java Collezioni Interviste Domande e risposte per esperti
21) Fornisci un esempio di ArrayList
L'esempio di ArrayList è:
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) Spiegare l'elenco collegato supportato da Java
Due tipi di elenchi collegati supportati da Java siamo:
- Elenco collegato singolarmente: L'elenco collegato singolarmente è un tipo di struttura dati. In un elenco collegato singolarmente, ciascun nodo dell'elenco memorizza il contenuto del nodo e un riferimento o puntatore al nodo successivo nell'elenco. Non memorizza alcun riferimento o puntatore al nodo precedente.
- Elenchi doppiamente collegati: Gli elenchi doppiamente collegati sono un tipo speciale di elenco collegato in cui l'attraversamento degli elementi di dati può essere effettuato in entrambe le direzioni. Ciò è reso possibile dalla presenza di due collegamenti in ogni nodo, uno che si collega al nodo successivo e un altro che si collega al nodo precedente.
23) Spiegare i metodi forniti dall'interfaccia Queue?
Metodi di Java Le interfacce della coda sono:
Metodo | Descrizione |
---|---|
aggiunta booleana(oggetto) | Inserisce l'elemento specificato nella Queue. Restituisce vero nel caso in cui abbia successo. |
offerta booleana(oggetto) | Questo metodo viene utilizzato per inserire l'elemento nella Queue. |
Rimuovi oggetto() | Recupera e rimuove l'intestazione della coda. |
Sondaggio oggetto() | † Recupera e rimuove l'intestazione della coda o restituisce null nel caso in cui sia vuota. |
Sondaggio oggetto() | Recupera e rimuove l'intestazione della coda o restituisce null nel caso in cui sia vuota. |
Elemento oggetto() | Recupera i dati dalla coda, ma non ne rimuove la testa. |
Sbirciatina dell'oggetto() | Recupera i dati dalla Queue ma non ne rimuove la testa o, nel caso, se la Queue è vuota, recupererà null. |
24) Menzionare i metodi forniti dalla classe Stack
I metodi importanti forniti dalla classe Stack sono:
- spingere(): Spingi l'oggetto nella pila.
- vuoto (): Questo metodo rileva se lo stack è vuoto o meno.
- pop(): Si Java Il metodo del framework di raccolta rimuove l'oggetto dallo stack.
- ricerca (): Questo metodo cerca gli elementi nello stack.
- sbirciare (): Si Java Il metodo esamina l'oggetto stack senza rimuoverlo.
25) Definire emptySet() nel file Java quadro delle collezioni
Metodo emptySet() che restituisce il set immutabile vuoto ogni volta che i programmatori tentano di rimuovere elementi null. Il set restituito da emptySet() è serializzabile. La sintassi di questo metodo è:
finale pubblica statica Impostato set vuoto()
26) Distinguere tra Collezione e Collezioni
La differenza tra Collezione e Collezioni è:
Collezione | Collezioni |
---|---|
La raccolta è un'interfaccia. | Le raccolte sono una classe. |
Rappresenta un gruppo di oggetti come una singola entità. | Definisce vari metodi di utilità per gli oggetti della raccolta. |
La raccolta è l'interfaccia root del file Java Quadro della raccolta. | Collections è una classe di utilità generale. |
Questa interfaccia viene utilizzata per derivare le strutture dati della raccolta. | Questa classe contiene metodi statici per manipolare la struttura dei dati. |
27) Definire LinkedHashSet nel file Java Quadro di raccolta?
LinkedHashSet è una sottoclasse della classe chiamata HashSet e implementa l'interfaccia set. È una versione ben ordinata di HashSet che mantiene un elenco doppiamente collegato tra tutti i suoi elementi.
28) Qual è la differenza tra failfast e failsafe?
Infallibile | Failsafe |
---|---|
Non consente la modifica della raccolta durante l'iterazione. | Consente la modifica della raccolta durante l'iterazione. |
Può lanciare ConcurrentModificationException | Non può generare alcuna eccezione. |
Utilizza la collezione originale per attraversare gli elementi. | Utilizza una copia originale della raccolta per attraversare gli elementi. |
Non è richiesta memoria aggiuntiva. | È necessaria una memoria aggiuntiva. |
29) Elenca le visualizzazioni della raccolta di un'interfaccia di mappa
Le visualizzazioni della raccolta dell'interfaccia della mappa sono: 1) visualizzazione dell'insieme di chiavi, 2) visualizzazione dell'insieme di valori e 3) visualizzazione dell'insieme di voci.
30) Quali sono i vantaggi del Collection Framework in Java?
I vantaggi di Collection Framework in Java siamo:
- Java il framework di raccolta offre strutture dati altamente efficienti ed efficaci che migliorano la precisione e la velocità del programma.
- Il programma sviluppato con Java il quadro della raccolta è facile da mantenere.
- Uno sviluppatore può combinare classi con altri tipi che aumentano la riusabilità del codice.
- Il Java il framework di raccolta consente ai programmatori di modificare i tipi di raccolta primitivi nel modo che preferiscono.
31) Qual è un buon modo per ordinare gli oggetti della Collezione Java?
Un buon modo per ordinare Java gli oggetti della raccolta utilizzano le interfacce Comparable e Comparator. Uno sviluppatore può utilizzare Collections.sort(), gli elementi vengono ordinati in base all'ordine menzionato in compareTo().
Quando uno sviluppatore utilizza Collections, sort (Comparator), ordina gli oggetti in base a compare() dell'interfaccia Comparator.
32) Spiega Vector in Java
Il vettore è uguale a un array. Dispone di componenti a cui è possibile accedere utilizzando un valore di indice. I vettori possono contenere un metodo legacy che non fa parte del framework della raccolta.
33) Qual è la differenza tra Set e Mappa?
Impostato | Mappa |
---|---|
Il set appartiene al pacchetto-java.util. | La mappa appartiene al pacchetto java.util. |
Può estendere l'interfaccia di raccolta. | Non estende l'interfaccia di raccolta. |
Non consente valori duplicati. | Consente valori duplicati. |
Set può ordinare solo un valore nullo. | La mappa può ordinare più valori nulli. |
34) Definire la classe del dizionario
La classe Dictionary è a Java classe che ha la capacità di memorizzare coppie chiave-valore.
35) Definire EnumSet
java.util.EnumSet è un'implementazione di Set che può essere utilizzata con i tipi enum. EnumSet con tutti gli elementi deve provenire da un tipo enum specificato in modo esplicito o implicito. Non è sincronizzato e inoltre non sono consentite chiavi nulle. EnumSet fornisce metodi come EnumSetof(E first, E… rest), complementOf(EnumSet s) e copyOf(Collection c).
36) Quali sono i due modi per rimuovere i duplicati da ArrayList?
Due modi per rimuovere i duplicati da ArrayList sono:
- Set hash: Lo sviluppatore può utilizzare HashSet per rimuovere l'elemento duplicato da ArrayList. Lo svantaggio è che non può preservare l'ordine di inserimento.
- LinkedHashSet: Gli sviluppatori possono anche mantenere l'ordine di inserimento utilizzando LinkedHashSet anziché HashSet.
37) Cos'è IdentityHashMap?
IdentityHashMap è una classe che implementa interfacce Serializable, Clonable, Map ed estende la classe AbstractMap. È progettato per il caso in cui è necessaria una semantica di uguaglianza dei riferimenti.
38) Cos'è WeakHashMap?
WeakHashMap è un'implementazione di Java Mappa. Viene utilizzato per memorizzare riferimenti deboli alle sue chiavi. L'ordinamento utilizzando questa mappa consente che una coppia chiave-valore venga raccolta come spazzatura. La sua chiave non viene referenziata all'esterno di WeakHashMap.
39) Quali sono i metodi per rendere la raccolta thread-safe?
I metodi per rendere sicuro il thread di raccolta sono:
- Collezioni.synchronizedList(elenco);
- Collezioni.synchronizedMap(mappa);
- Collezioni.synchronizedSet(set);
40) Spiegare Non supportatoOperationException
Non supportatoOperationException è un'eccezione che viene generata su metodi che non sono supportati dal tipo di raccolta effettivo.
Ad esempio, lo sviluppatore sta creando un elenco di sola lettura utilizzando "Collections.unmodifyingList(list)" e chiamando il metodo call(), add() oremove(). Dovrebbe chiaramente lanciare UnsupportedOperationException.
41) Assegna un nome alle classi di raccolta che danno accesso casuale agli elementi ai suoi elementi
Le classi di raccolta che forniscono accesso casuale ai suoi elementi sono: 1) ArrayList, 2) HashMap, 3) TreeMap e 4) Hashtable.
42) Spiegare la differenza tra Queue e Deque.
Fare la coda | deque |
---|---|
Si chiama coda a terminazione singola | Si chiama coda a doppia estremità |
Gli elementi nella coda vengono aggiunti o rimossi da un'estremità | Gli elementi nella coda aggiunti da entrambe le estremità possono essere aggiunti e rimossi da entrambe le estremità |
È meno versatile. | È più versatile. |
43) Menzionare l'implementazione dell'interfaccia List and Set
Classe che implementa l'interfaccia Elenco: 1) ArrayList, 2) Vector e 3) LinkedList.
Classe che implementa l'interfaccia Set: 1) HashSet e 2) TreeSet.
44) Spiegare il modello di progettazione seguito da Iterator
L'iteratore segue i dettagli del modello di progettazione dell'iteratore. Consente allo sviluppatore di navigare attraverso le raccolte di oggetti utilizzando un'interfaccia comune senza conoscerne l'implementazione.
45) Cos'è il peek() dell'interfaccia Queue?
Peek () è un metodo di interfaccia della coda. Recupera tutti gli elementi ma non rimuove l'intestazione della coda. Nel caso in cui la coda sia vuota, questo metodo restituirà null.
46) Cos'è CopyOnWriteArrayList?
CopyOnWriteArrayList è una variante di ArrayList in cui operazioni come add e set vengono implementate creando una copia dell'array. È un thread-safe e quindi non genera ConcurrentModificationException. Questo ArrayLists consente tutti gli elementi, incluso null.
47) Distinguere tra ArrayList e LinkedList
La differenza tra ArrayList e LinkedList è:
Lista di array | Lista collegata |
---|---|
Utilizza un array dinamico. | Utilizza un elenco doppiamente collegato. |
ArrayList non è preferibile per la manipolazione. | LinkedList è preferibile per la manipolazione. |
ArrayList fornisce accesso casuale. | LinkedList non fornisce accesso casuale. |
ArrayList memorizza solo oggetti, quindi richiede meno sovraccarico di memoria | LinkedList memorizza oggetti e oggetti indirizzo; quindi, richiede più sovraccarico di memoria. |
48) Spiegare i metodi di interfaccia dell'iteratore
I metodi di interfaccia dell'iteratore sono:
Metodo | Descrizione |
---|---|
booleano pubblico hasNext() | Restituisce true se l'iteratore ha elementi; in caso contrario, restituisce false. |
Oggetto pubblico next() | Questo metodo restituisce l'elemento e sposta il puntatore al valore successivo. |
rimozione vuoto pubblico() | Si Java può rimuovere gli ultimi elementi restituiti dall'iteratore. Public void remove() è meno utilizzato. |
49) Quali sono i metodi della classe HashSet?
I metodi della classe HashSet sono:
Metodi | Descrizione |
---|---|
aggiunta booleana(Oggetto o) | Questo metodo aggiunge l'elemento menzione a questo set se non è già presente. |
booleano contiene(Oggetto o): | Restituisce vero se l'insieme contiene l'elemento specificato. |
vuoto chiaro(): | Questo metodo rimuove gli elementi impostati. |
booleano èVuoto(): | Restituisce vero nel caso in cui l'insieme non abbia elementi. |
rimozione booleana(Oggetto o): | Rimuove l'elemento specificato dal set. |
clone oggetto(): | Questo metodo restituisce una copia dell'istanza HashSet: gli elementi stessi non vengono clonati. |
iteratore iteratore() | Restituisce un iteratore sugli elementi di questo set. |
dimensione intera(): | Restituisce il numero di elementi disponibili nell'insieme. |
50) Quali sono i metodi di Java Classe TreeSet?
I metodi di Java Le classi TreeSet sono:
Metodi | Descriptioni |
---|---|
booleano addAll(Collezione c) | Aggiungi tutti gli elementi nella raccolta specificata a questo set. |
booleano contiene(Oggetto o) | Restituisce vero se l'insieme contiene l'elemento menzione. |
booleano è vuoto() | Si Java Il metodo restituisce true se questo insieme non contiene elementi. |
rimozione booleana(Oggetto o) | Rimuove l'elemento specificato dal set. |
vuoto aggiungi(Oggetto o) | Aggiunge l'elemento specificato al set. |
vuoto chiaro() | Si Java Il metodo rimuove tutti gli elementi dal set. |
51) Spiegare HashSet collegato
Java La classe LinkedHashSet è un elenco collegato e un'implementazione della tabella Hash dell'interfaccia Set. Contiene elementi univoci uguali a HashSet. Hash collegato inserito Java fornisce anche operazioni di set opzionali che possono mantenere l'ordine di inserimento.
52) Quali sono i metodi importanti utilizzati in una lista collegata?
I metodi importanti utilizzati nell'elenco collegato sono:
Metodo | Descrizione |
---|---|
aggiunta booleana (Oggetto o) | Viene utilizzato per aggiungere l'elemento specificato alla fine del vettore. |
booleano contiene(Oggetto o) | È un metodo che restituisce true se questa lista contiene l'elemento specificato. |
void add (indice int, elemento Object) | Inserisce l'elemento nell'elemento specificato nel vettore. |
void addFirst(Oggetto o) | Si usa per inserire all'inizio l'elemento dato. |
void aggiungiUltimo(Oggetto o) | Viene utilizzato per aggiungere l'elemento specificato alla fine. |
Dimensione intera() | Questo metodo può essere utilizzato per restituire il numero totale di elementi in un elenco. |
rimozione booleana(Oggetto o) | Può rimuovere la prima occorrenza dell'elemento specificato da questo elenco. |
int indiceOf(elemento oggetto) | Si Java restituisce l'indice con la prima occorrenza dell'elemento menzione in questo elenco, oppure -1. |
int lastIndexOf(Elemento oggetto) | È una Java metodo che restituisce l'indice con l'ultima occorrenza dell'elemento specificato in questo elenco o -1. |
53) Elenca le varie classi disponibili in set
Varie classi disponibili nei set sono: HashSet, TreeSetand e LinkedHashSet.
54) Elenco dei metodi disponibili in Java Interfaccia della coda
- aggiunta booleana(oggetto)
- offerta booleana(oggetto)
- rimozione oggetto()
- sondaggio sugli oggetti()
- elemento oggetto()
- sbirciatina dell'oggetto()
55) Distinguere tra Lista e Set.
Lista | Impostato |
---|---|
Una raccolta ordinata di elementi | Una raccolta non ordinata di elementi |
Conserva l'ordine di inserimento | Non preserva l'ordine di inserimento |
Sono consentiti valori duplicati | Non sono consentiti valori duplicati |
È possibile memorizzare un numero qualsiasi di valori nulli | È possibile memorizzare solo un valore nullo |
ListIterator può essere utilizzato per attraversare la List in qualsiasi direzione | ListIterator non può essere utilizzato per attraversare un Set |
Contiene una classe legacy chiamata vettore | Non contiene alcuna classe legacy |
Java Collezioni Interviste Domande e risposte per oltre 5 anni di esperienza
56) Spiegare ogni ciclo con un esempio
For-Each Loop è un'altra forma di ciclo for utilizzata per attraversare l'array. Riduce significativamente il codice e non viene utilizzato l'indice o meglio il contatore nel ciclo.
Esempio di per ogni ciclo:
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) Spiegare l'operatore diamante
L'operatore Diamond consente al compilatore di raccogliere gli argomenti di tipo della classe generica. In Java SE, lo sviluppatore può sostituire il costruttore parametrico con un set di parametri vuoto (<>), noto come operatore diamante.
58) Spiegare l'interfaccia ad accesso casuale
L'interfaccia RandomAccess viene utilizzata dalle implementazioni List per indicare che supportano velocemente.
59) Nominare le classi di raccolta che implementano l'interfaccia di accesso casuale
JavaIl pacchetto .util dispone di classi che possono implementare l'interfaccia ad accesso casuale: CopyOnWriteArrayList, Stack, ArrayList e Vector.
60) Come unire più ArrayList?
L'elenco fornisce un metodo addall() con più ArrayList in Java.
Ad esempio, considera due elenchi 1) areaList e 2) secondAreaList. Uno sviluppatore può unirsi a loro utilizzando addall() come:
areaList.addAll(secondAreaList);
61) Spiegare l'interfaccia deque
Java.util.Deque è Java, un'interfaccia che estende l'interfaccia Queue. Fornisce supporto per l'inserimento e l'eliminazione di elementi in entrambe le estremità. Questa Queue è anche chiamata coda a doppia estremità.
62) Spiega Linkedhashmap
LinkedHashMap è l'implementazione dell'interfaccia Map. Può anche estendere la classe HashMap. Pertanto, come HashMap, LinkedHashMap abilita Java agli sviluppatori di consentire una chiave nulla e più di un valore nullo.
63) Spiegare i metodi per rimuovere elementi da ArrayList
I metodi per rimuovere elementi da ArrayList sono:
Metodo | Descrizione |
---|---|
chiaro() | Questo metodo rimuove gli elementi da ArrayList. |
rimuovi(indice int) | Questo metodo di ArrayList può rimuovere l'elemento in una posizione particolare. |
rimuovi(Oggetto o) | Può rimuovere la prima occorrenza dell'elemento menzione dall'ArrayList. |
Rimuovi tutto() | Può rimuovere l'elenco degli elementi presenti in una particolare raccolta. |
rimuoviSe(Predicato filtro) | Questo metodo rimuove gli elementi che soddisfano la menzione di un predicato. |
64) Spiega la mappa. voce nella mappa
Map.entry è un file Java interfaccia di java.util. Ha un'interfaccia annidata in Map. Questa interfaccia deve essere qualificata dal nome della classe o dell'interfaccia di cui è membro. Pertanto è qualificata come Map. Entry. Rappresenta una coppia chiave-valore che può formare un elemento di una Map.
Questo metodo restituisce una visualizzazione della raccolta. Ad esempio, considera cityMap come una mappa. Lo sviluppatore può utilizzare entrySet() per ottenere la vista impostata della mappa avente un elemento Map.Entry. Il programmatore può anche utilizzare getKey() e getValue() di Map.Entry per ottenere la coppia di chiave e valore della mappa.
65) Quale metodo viene utilizzato per ordinare un array in ordine crescente?
Java metodo del framework di raccolta, Collections.sort() viene utilizzato per ordinare un array in ordine crescente.
66) Come misurare le prestazioni di un ArrayList?
Le prestazioni di ArrayList possono essere misurate da:
- Aggiunta di un elemento: Lo sviluppatore può aggiungere un elemento alla fine di ArrayList utilizzando il metodo add(E e). È O(1). Nello scenario peggiore, potrebbe andare a O(n). Ciò può verificarsi se lo sviluppatore aggiunge più elementi rispetto alla capacità dell'array.
- Recupero di un elemento: Lo sviluppatore può accedere all'indice dell'array utilizzando get(int indice). Le prestazioni, in questo caso, possono essere misurate utilizzando ArrayList get() is O(1).
- Rimuovere un elemento: Nel caso in cui, se gli sviluppatori rimuovono l'elemento utilizzando il metodo Remove(int Index), le prestazioni di ArrayList possono essere calcolate utilizzando il metodo Remove(int Index) con il metodo O(n – Index).
67) Spiegare la classe LinkedList
Classe LinkedList in Java implementa Deque e List usando una lista concatenata doppia. C'è un nodo di classe privato in una lista concatenata doppia che fornisce la sua struttura. Ha anche una variabile item per contenere il valore e il riferimento alla classe Node. Questo può essere usato per connettere i nodi successivi e precedenti.
68) Fornisci un esempio di Hashmap
L'esempio di Hashmap è:
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) Come iterare la mappa?
Lo sviluppatore non può iterare direttamente la mappa, ma questa interfaccia dispone di due metodi che forniscono un set di visualizzazioni della mappa. Questi metodi sono:
- Impostato >Set di voci(): È un metodo che restituisce un set avente le voci menzionate nella mappa. Queste voci sono generalmente oggetto di oggetti, che hanno tipo Map. Iscrizione.
- Impostato mazzo di chiavi(): Si Java restituisce un set che ha la chiave della mappa.
70) Spiega la mappa ad albero Java
TreeMap è una classe che implementa l'interfaccia Mappa LinkedHashMap e HashMap. Può anche implementare l'interfaccia NavigableMap ed estendere la classe AbstractMap.
71) Qual è la differenza tra Hashmap e Hashtable?
Mappa hash | tabella hash |
---|---|
Non è sincronizzato. | È sincronizzato. |
Mappa hash consente una chiave come valore nullo. | HashTable non consente valori null. |
Iterator viene utilizzato per attraversare HashMap. | Per attraversare una HashTable viene utilizzato Iterator o Enumerator. |
Può essere utilizzato sia per HashTable, HashMap ed è fail-fast. | Può essere utilizzato con HashTable ed è a prova di errore. |
HashMap funziona più velocemente di HashTable. | Hashtable non è molto più veloce rispetto a HashMap. |
72) Spiegare il funzionamento interno di HashSet in Java
HashInserito Java utilizza internamente HashMap per memorizzare gli elementi. Può anche memorizzare valori univoci senza valori duplicati.
In Java, lo sviluppatore HashSet può avere il metodo add(E e) che accetta solo l'elemento da aggiungere come parametro. Non accetta la coppia chiave-valore.
73) Spiega la notazione Big-O con un esempio
La notazione Big-O descrive le prestazioni di un algoritmo come il numero di elementi in ArrayList. Uno sviluppatore può utilizzare la notazione Big-O per scegliere l'implementazione della raccolta. Si basa su prestazioni, tempo e memoria.
Ad esempio, ArrayList get(index i) è un metodo per eseguire un'operazione a tempo costante. Non dipende dal numero totale di elementi disponibili nell'elenco. Pertanto, la prestazione nella notazione Big-O è O(1).
74) Spiegare le migliori pratiche in Java Quadro di raccolta
Le migliori pratiche in Java I framework della raccolta sono:
- La scelta della corretta tipologia di ritiro dipende dalla necessità.
- Evitare il rehashing o il ridimensionamento stimando il numero totale di elementi da archiviare nelle classi di raccolta.
- Scrivi a Java programma in termini di interfacce. Ciò aiuterà lo sviluppatore a modificarne l'implementazione senza sforzo in futuro.
- Uno sviluppatore può utilizzare Generics per l'indipendenza dai tipi.
- Utilizza le classi immutabili fornite da Java Kit di sviluppo. Evitare l'implementazione di equals() e hashCode() per le classi personalizzate.
- Un programmatore dovrebbe usare la classe di utilità Collections per gli algoritmi o per ottenere collezioni di sola lettura, sincronizzate o vuote. Ciò migliorerà la riutilizzabilità del codice con una bassa manutenibilità.
75) Spiegare i vari tipi di code Java
Ci sono tre tipi di code in entrata Java:
- Coda prioritaria: Si tratta di un tipo speciale di coda in cui gli elementi vengono ordinati secondo il loro ordinamento naturale o comparatore personalizzato.
- Coda circolare: È un tipo di coda in cui le operazioni dell'utente vengono eseguite in base al metodo FIFO. L'ultimo elemento è collegato alla prima posizione in modo da formare un cerchio.
- Double-Coda terminata: Una coda a doppia estremità è un tipo di dati astratto che generalizza una coda. Gli elementi in questa coda possono essere aggiunti o rimossi sia dalla testa che dalla coda.
76) Qual è la differenza tra stack e coda?
pila | Fare la coda |
---|---|
Il principio di funzionamento dello stack è LIFO. | Il funzionamento principale della coda è FIFO. |
Un'estremità viene utilizzata per eseguire l'inserimento o l'eliminazione di elementi. | Un'estremità viene utilizzata per eseguire l'inserimento e un'altra estremità viene utilizzata per eliminare gli elementi. |
Utilizza un puntatore. | Utilizza due puntatori in una coda semplice. |
Non ha alcun tipo di variante. | Ha varianti come coda prioritaria, coda circolare, coda doppiamente terminata. |
È facile da usare | Non è facile da usare. |
77) Qual è la differenza tra array e stack?
La differenza tra array e stack è:
Italia | pila |
---|---|
È una raccolta di elementi identificati dall'indice. | È un'operazione di raccolta che funge da operazioni push e pop. |
Ha elementi di tipi di dati che sono gli stessi. | Ha elementi di tipi di dati che sono diversi. |
Gli elementi possono essere rimossi o aggiunti all'array utilizzando l'operazione di accesso casuale. | Gli elementi possono essere rimossi o aggiunti in uno stack utilizzando l'operazione LIFO. |
78) Definisci Iteratore()
Iterator() è un'interfaccia che fornisce metodi per iterare Collection. Iterator può prendere il posto di Enumeration in Java. Consente al chiamante di rimuovere elementi dalla raccolta. Il metodo fornisce un modo generico per la traversata utilizzando elementi della raccolta e implementando il pattern di progettazione dell'iteratore.
79) Quali sono i vari modi per scorrere un elenco?
Java Il programmatore del framework di raccolta può scorrere un elenco in due modi: 1) utilizzando iteratore e 2) utilizzandolo per ciascuno loop.
80) Quali sono i vantaggi dello stack?
I vantaggi dello stack sono:
- Ti aiuta a gestire i dati in un metodo LIFO (Last In First Out), che non è possibile con l'elenco e l'array collegati.
- Quando viene chiamata una funzione, le variabili locali vengono archiviate in uno stack e una volta restituita viene automaticamente distrutta.
- Uno stack viene utilizzato quando una variabile non viene utilizzata al di fuori di quella funzione.
- Ti consente di controllare il modo in cui la memoria viene allocata e deallocata.
- Stack ripulisce automaticamente l'oggetto.
- Non facilmente corrotto
- Variabili non può essere ridimensionato.
Queste domande del colloquio ti aiuteranno anche nel tuo viva(orale)