Java Collection Framework bola predstavená v r JDK 1.2 ktorý obsahuje všetky triedy kolekcií a rozhrania. Kolekcia Java je rámec, ktorý poskytuje mechanizmus na ukladanie a manipuláciu so zbierkou objektov. Umožňuje vývojárom prístup k vopred zabaleným dátovým štruktúram a algoritmom na manipuláciu s údajmi.
V tomto článku sme pokryli 50 najlepších Otázky týkajúce sa rozhovoru o kolekciách Java a Odpovede ktoré pokrývajú všetko od základných až po pokročilé koncepty kolekcií Java, ako sú navigačná kolekcia, WeakHashMap, streamy Lambda atď. Či už ste čerstvejšie alebo an skúsený Java vývojár , tieto otázky na rozhovory o kolekciách Java vám dodajú všetku sebadôveru, ktorú potrebujete, aby ste zvládli ďalší pohovor v jazyku Java.

Otázky týkajúce sa rozhovoru o kolekciách Java
50 otázok sme rozdelili na dve časti: Skúsení a Čerstvá. Začnime otázkami pre Freshers.
Obsah
- Otázky týkajúce sa rozhovoru o kolekcii Java pre začiatočníkov
- Otázky týkajúce sa pohovoru Java Collection pre skúsených
Otázky týkajúce sa rozhovoru o kolekcii Java pre začiatočníkov
1. Čo je kolekcia v jazyku Java?
Termín zber sa vzťahuje na skupinu objektov reprezentovaných ako jeden celok. Triedy v hierarchii tried kolekcie Java sú rozdelené na dve koreň rozhrania: Kolekcia (java.util.Collection) a Mapa (java.util.Map) . Pojmy, s ktorými sa stretnete pri učení sa o kolekcii v jazyku Java:
- Kolekčný rámec: Java's Collection Framework definuje triedy a rozhrania na reprezentáciu skupín objektov ako jednej entity. Vývojári C++ môžu porovnať framework Collection s STL (štandardná knižnica šablón) a Container Framework s Collection Framework, ak pochádzajú z prostredia C++.
- Rozhranie zbierky: Rozhranie triedy špecifikuje, čo má robiť, nie ako. Inými slovami, je to plán pre triedu. Toto rozhranie poskytuje najbežnejšie metódy pre všetky objekty kolekcie, ktoré sú súčasťou Collection Framework. Prípadne predstavuje jednotlivý objekt ako celok.
- Trieda kolekcií: Člen kolekcie Framework, je súčasťou balíka java.util. Kolekčný objekt je v tejto triede vybavený mnohými pomocnými metódami.
2. Čo je to framework v Jave?
Rámce sú sady triedy a rozhrania ktoré poskytujú hotovú architektúru. Na implementáciu nových funkcií alebo tried nie je potrebné definovať rámec. Výsledkom je, že optimálny objektovo orientovaný dizajn obsahuje rámec obsahujúci kolekciu tried, ktoré všetky vykonávajú podobné úlohy. Rámec možno použiť rôznymi spôsobmi, napríklad volaním jeho metód, jeho rozšírením a poskytovaním spätných volaní, poslucháčov a iných implementácií. Niektoré z populárnych rámcov v jazyku Java sú:
- Jar
- Hibernácia
- Vzpery
- Google Web Toolkit (GWT)
- JavaServer Faces (JSF)
3. Aký je rozdiel medzi Array a Collection v Jave?
Polia sú kolekciou premenných podobného typu so spoločným názvom v jazyku Java. Medzi poliami v jazyku Java a C/C++ sú určité rozdiely. Na druhej strane kolekcie sú skupiny jednotlivých objektov, ktoré tvoria jeden celok známy ako zbierka objektov.
| Polia vlc na stiahnutie z youtube | Zbierka |
|---|---|
| Polia majú pevnú veľkosť, takže keď vytvoríme pole, nemôžeme ho zväčšovať ani zmenšovať na základe našich požiadaviek. | Kolekcia je pestovateľná v prírode a vychádza z našich požiadaviek. Veľkosť môžeme zväčšiť alebo zmenšiť. |
| Pokiaľ ide o pamäť, polia sa neodporúčajú používať. | Pokiaľ ide o pamäť, na používanie sa odporúčajú zbierky. |
| Pokiaľ ide o výkon, na použitie sa odporúčajú polia. | Z hľadiska výkonu sa kolekcie neodporúčajú používať. |
| Polia môžu obsahovať iba prvky homogénnych typov údajov. | Kolekcia môže obsahovať homogénne aj heterogénne prvky. |
Viac informácií nájdete v článku – Rozdiel medzi poliami a kolekciami v Jave
4. Aké sú rôzne rozhrania používané v rámci Java Collections Framework?
Kolekcia je známa ako koreň hierarchie kolekcie. Kolekcie predstavujú skupiny objektov známe ako prvky. Platforma java neposkytuje žiadnu priamu implementáciu tohto rozhrania, ale rozhranie Collection je implementované triedami List a Set.
- Rozhranie zberu
- Rozhranie zoznamu
- Nastaviť rozhranie
- Rozhranie frontu
- Rozhranie dequeue
- Mapové rozhranie
5. Vysvetlite hierarchiu frameworku Collection v Jave.
Všetky triedy a rozhrania požadované rámcom kolekcie sú obsiahnuté v balíku nástrojov (java. util). Kolekčné rámce majú rozhranie nazývané iterovateľné rozhranie, ktoré umožňuje iterátoru iterovať cez všetky kolekcie. Okrem tohto rozhrania funguje hlavné rozhranie kolekcie ako koreň kolekcie. Všetky kolekcie rozširujú toto rozhranie kolekcie, čím rozširujú vlastnosti iterátora a metódy tohto rozhrania. Nasledujúci obrázok ilustruje hierarchiu rámca kolekcie.
Hierarchia kolekcie Java
6. Aké sú výhody kolekcie Framework?
Výhody zberného rámca: Keďže chýbajúci rámec zberu viedol k vyššie uvedenému súboru nevýhod, uvádzame výhody rámca zberu.
- Konzistentné API: API má základnú sadu rozhraní ako napr Zbierka , Set , Zoznam , alebo Mapa , všetky triedy (ArrayList, LinkedList, Vector, atď.), ktoré implementujú tieto rozhrania niektoré spoločný súbor metód.
- Znižuje námahu pri programovaní: Programátor sa nemusí starať o dizajn kolekcie, ale môže sa sústrediť na jej najlepšie využitie vo svojom programe. Preto bol úspešne implementovaný základný koncept objektovo orientovaného programovania (t.j.) abstrakcie.
- Zvyšuje rýchlosť a kvalitu programu: Zvyšuje výkon poskytovaním vysokovýkonných implementácií užitočných dátových štruktúr a algoritmov, pretože v tomto prípade programátor nemusí myslieť na najlepšiu implementáciu špecifickej dátovej štruktúry. Môže jednoducho použiť najlepšiu implementáciu na drastické zvýšenie výkonu svojho algoritmu/programu.
7. Čo je ArrayList v jazyku Java?
ArrayList je súčasťou kolekcie Java a je to trieda balíka java.util. Poskytuje nám dynamické polia v jazyku Java. Hlavnými výhodami ArrayList sú, že ak deklarujeme pole, je potrebné uviesť veľkosť, ale v ArrayList nie je potrebné uvádzať veľkosť ArrayList, ak chcete uviesť veľkosť, potom to môžete urobiť.

Obrázok zoznamu polí
Viac informácií nájdete v článku – ArrayList v jazyku Java
8. Aký je rozdiel medzi Collection a Collections?
| Zbierka | zbierky |
|---|---|
| Je to rozhranie. | Je to úžitková trieda. |
| Používa sa na reprezentáciu skupiny jednotlivých objektov ako jedného celku. | Definuje niekoľko pomocných metód, ktoré sa používajú na prácu s kolekciou. |
| Kolekcia je rozhranie, ktoré obsahuje statickú metódu od java8. Rozhranie môže obsahovať aj abstraktné a predvolené metódy. | Obsahuje iba statické metódy. |
Viac informácií nájdete v článku – Zbierka verzus kolekcie v jazyku Java s príkladom
9. Rozdiel medzi ArrayList a LinkedList v rámci kolekcie java?

ArrayList a LinkedList
| ArrayList | LinkedList |
|---|---|
| Táto trieda používa dynamické pole na ukladanie prvkov v nej. So zavedením generík táto trieda podporuje ukladanie všetkých typov objektov. | Táto trieda používa dvojito prepojený zoznam na ukladanie prvkov v ňom. Podobne ako ArrayList aj táto trieda podporuje ukladanie všetkých typov objektov. |
| Manipulácia s ArrayListom si vyžaduje viac času kvôli internej implementácii. Kedykoľvek odstránime prvok, interne sa pole prejde a pamäťové bity sa posunú. | Manipulácia LinkedList trvá menej času v porovnaní s ArrayList, pretože v dvojito prepojenom zozname neexistuje žiadny koncept posunu pamäťových bitov. Zoznam sa prejde a odkaz sa zmení. |
| Táto trieda implementuje rozhranie List. Preto to funguje ako zoznam. | Táto trieda implementuje rozhranie List aj rozhranie Deque. Preto môže pôsobiť ako zoznam a deque. |
| Táto trieda funguje lepšie, keď aplikácia vyžaduje ukladanie údajov a prístup k nim. | Táto trieda funguje lepšie, keď aplikácia vyžaduje manipuláciu s uloženými údajmi. |
Viac informácií nájdete v článku – ArrayList vs LinkedList v jazyku Java
10. Čo je to iterátor?
Kolekčný rámec Java používa iterátory na získanie prvkov jeden po druhom. Tento iterátor je univerzálny, pretože ho možno použiť s akýmkoľvek typom objektu Collection. Pomocou Iteratora môžeme vykonávať operácie čítania aj odstraňovania. Toto je vylepšená verzia Enumeration s pridaním odstraňovania prvkov.
Pri enumerácii prvkov vo všetkých Collection framework implementovaných rozhraniach, ako napr Set , Zoznam , Fronta , O čom , a všetky implementované triedy Map, musí byť použitý Iterátor. Jediný dostupný kurzor pre celý rámec kolekcie je iterátor. Pomocou metódy iterator() v rozhraní Collection môžete vytvoriť objekt iterátora.
Syntax:
Iterator itr = c. iterator ();>
Poznámka: Tu c je akýkoľvek objekt kolekcie. itr je typu Iterator interface a odkazuje na c.
Viac informácií nájdete v článku – Iterátory v Jave
11. Aký je rozdiel medzi Iterátorom a Enumeráciou?
Hlavný rozdiel medzi iterátorom a enumeráciou je v tom, že iterátory majú metódu remove(), zatiaľ čo enumerácie ju nemajú. Pomocou Iteratora teda môžeme manipulovať s objektmi ich pridávaním a odstraňovaním z kolekcií. Keďže enumerácia môže prechádzať len objektmi a načítať ich, správa sa ako rozhranie len na čítanie.
Viac informácií nájdete v článku – Rozdiel medzi Iterátorom a Enumeráciou
12. Aký je rozdiel medzi List a Set v Jave
Hlavný rozdiel medzi zoznamom a množinou je v tom, že zoznam môže obsahovať duplicitné prvky, zatiaľ čo množina obsahuje iba jedinečné prvky. Zoznam je Usporiadaný a zachováva poradie objektu, do ktorého sú pridané. Súprava je neobjednaná.
| Zoznam | Set |
|---|---|
| Zoznam je indexovaná sekvencia. | Sada je neindexovaná sekvencia. |
| Zoznam umožňuje duplicitné prvky | Súprava neumožňuje duplicitné prvky. |
| Prvky sú prístupné podľa ich polohy. | Prístup k prvkom nie je povolený. |
| Je možné uložiť viacero nulových prvkov. | Nulové prvky možno uložiť iba raz. |
| Implementácie zoznamov sú ArrayList, LinkedList, Vector, Stack | Implementácie sady sú HashSet, LinkedHashSet. |
Viac informácií nájdete v článku – Rozdiel medzi zoznamom a súborom v jazyku Java
13. Aké sú najlepšie postupy pre Java Collections Framework?
Nižšie sú uvedené niektoré z osvedčených postupov pri používaní kolekcií Java:
- Programy by mali byť napísané ako rozhrania, nie implementácie, takže implementáciu môžeme neskôr upraviť.
- Vždy, keď je to možné, použite Generics na zaistenie bezpečnosti typu a vyhnutie sa výnimkám ClassCastExceptions.
- Výber vhodného typu kolekcie na základe potreby. Napríklad, ak je veľkosť pevná, môžeme chcieť použiť Array nad ArrayList. Pri iterácii cez mapu by sme mali použiť LinkedHashMap. Set je najlepší spôsob, ako sa vyhnúť duplikáciám.
- Použite nemenné triedy poskytované JDK ako kľúče v Mape, aby ste sa vyhli implementácii hashCode() a equals().
- Aby sme zvýšili čitateľnosť kódu, mali by sme namiesto zisťovania veľkosti kolekcie a jej porovnávania s nulou použiť isEmpty().
- Namiesto písania vlastnej implementácie použite pomocnú triedu Collections na získanie kolekcií iba na čítanie, synchronizovaných alebo prázdnych kolekcií. Zlepšuje opätovné použitie kódu a zároveň vedie k väčšej stabilite.
14. Čo je prioritný front v jazyku Java?
PriorityQueues sa používajú na spracovanie objektov podľa ich priority. Fronty sa riadia algoritmom First-In-First-Out, ale niekedy je potrebné spracovať prvky frontu podľa ich priority, čo je miesto, kde vstupuje do hry PriorityQueue. Prioritné fronty sú založené na prioritných haldách.
Prvky prioritného radu sú zoradené podľa prirodzeného poradia alebo pomocou komparátora poskytnutého v čase zostavovania frontu, v závislosti od použitého konštruktora.

Prioritné fronty v jazyku Java
Vyhlásenie:
public class PriorityQueue extends AbstractQueue implements Serializable where E is the type of elements held in this queue>
Trieda implementuje rozhrania Serializable, Iterable, Collection a Queue.
15. Aký je rozdiel medzi zoznamom, množinou a mapou v jazyku Java?
| Zoznam | Set | Mapa |
|---|---|---|
| Rozhranie zoznamu umožňuje duplicitné prvky | Sada neumožňuje duplicitné prvky. | Mapa neumožňuje duplicitné prvky |
| Zoznam zachováva poradie vkladania. | Súprava neudržiava žiadne poradie vloženia. | Mapa tiež neuchováva žiadne poradie vloženia. |
| Môžeme pridať ľubovoľný počet hodnôt null. | Ale v súbore takmer iba jedna nulová hodnota. | Mapa umožňuje maximálne jeden nulový kľúč a ľubovoľný počet nulových hodnôt. |
| Triedy implementácie zoznamu sú Array List a LinkedList. | Triedy implementácie sady sú HashSet, LinkedHashSet a TreeSet. | Triedy implementácie máp sú HashMap, HashTable, TreeMap, ConcurrentHashMap a LinkedHashMap. |
Viac informácií nájdete v článku – Rozdiel medzi zoznamom, množinou a mapou v jazyku Java
16. Aký je rozdiel medzi Queue a Stack?
| Stoh | Fronta |
|---|---|
| Stacks funguje na princípe LIFO, čo znamená, že prvok vložený ako posledný bude prvým prvkom, ktorý sa vyberie. | Fronty fungujú na princípe FIFO, čo znamená, že prvok vložený ako prvý bude prvým prvkom, ktorý sa vyberie. |
| V zásobníkoch sa vkladanie a vymazávanie uskutočňuje iba zhora. | Vo frontoch sa vkladanie uskutočňuje na koniec zoznamu a mazanie sa uskutočňuje na začiatku zoznamu. |
| Operácia vloženia sa nazýva tlačná operácia. | Operácia vloženia sa nazýva operácia frontu. |
| Operácia vymazania sa nazýva operácia pop. | Operácia vymazania sa nazýva operácia vyradenia z frontu. |
| Horná časť zásobníka vždy ukazuje na posledný prvok v zozname, ktorý je jediným ukazovateľom používaným na prístup k zoznamu. | Na prístup k frontom sú udržiavané dva ukazovatele. Predný ukazovateľ ukazuje na prvý vložený prvok a zadný ukazovateľ ukazuje na posledný vložený prvok. |
17. Čo je BlockingQueue v jazyku Java?
Rozhranie BlockingQueue v jazyku Java je pridané v jazyku Java 1.5 spolu s rôznymi ďalšími súbežnými triedami nástrojov, ako sú ConcurrentHashMap, Counting Semaphore, CopyOnWriteArrrayList atď. Rozhranie BlockingQueue podporuje riadenie toku (okrem frontu) zavedením blokovania, ak je buď BlockingQueue plná alebo prázdna.
Vlákno, ktoré sa pokúša zaradiť prvok do úplného frontu, je zablokované, kým iné vlákno neuvoľní miesto vo fronte, a to buď vyradením jedného alebo viacerých prvkov, alebo úplným vyčistením frontu. Podobne blokuje vlákno, ktoré sa pokúša vymazať z prázdneho frontu, kým iné vlákna nevložia položku. BlockingQueue neprijíma nulovú hodnotu. Ak sa pokúsime zaradiť do frontu nulovú položku, vyvolá výnimku NullPointerException.
Použitie BlockingQueue

Blokovací front v jazyku Java
Hierarchia BlockingQueue

Hierarchia blokovacieho frontu v Jave
Vyhlásenie:
public interface BlockingQueue extends Queue>
Tu, A je typ prvkov uložených v kolekcii.
Viac informácií nájdete v článku – Rozhranie BlockingQueue v jazyku Java
18. Čo je hashCode()?

Obrázok na demonštráciu kódu Java Hash Code
Metóda hashCode() vracia hodnotu hashcode ako celé číslo. Je definovaný v triede Java Object, ktorá počíta hašovacie hodnoty daných vstupných objektov. Hodnota hashcode sa väčšinou používa v zbierkach založených na hashovaní, ako sú HashMap, HashSet, HashTable… atď. Táto metóda musí byť prepísaná v každej triede, ktorá prepíše metódu equals().
Syntax:
public int hashCode() // This method returns the hash code value // for the object on which this method is invoked.>
Viac informácií nájdete v článku – metódy equals() a hashCode() v jazyku Java
19. Rozlišujte medzi ArrayList a Vector v Java Collection Framework.
Pri zberových rozhovoroch sa táto otázka často kladie; Vector je však synchronizovaný, zatiaľ čo ArrayList nie. ArrayList je rýchlejší ako Vector. Veľkosť poľa ArrayList sa v prípade potreby zväčší o 50 %, zatiaľ čo kapacita Vectora sa zdvojnásobí vždy, keď je to potrebné.

Zoznam polí vs Vector v jave
| ArrayList | Vektor |
|---|---|
| ArrayList nie je synchronizovaný | Vektor je synchronizovaný. |
| Veľkosť ArrayList sa zvýši až o 50 % aktuálnej veľkosti poľa, ak počet prvkov prekročí jeho kapacitu. | Veľkosť ArrayList sa zvýši až o 100 % aktuálnej veľkosti poľa, ak počet prvkov prekročí jeho kapacitu. |
| ArrayList je rýchly, pretože nie je synchronizovaný. | Vector je pomalší, pretože je synchronizovaný. |
| Rozhranie iterátora sa používa na prechádzanie prvkami | Na prechádzanie vektorom možno použiť rozhranie iterátora alebo Enumeration. |
Viac informácií nájdete v článku – Vector vs ArrayList v jazyku Java
20. Rozlišujte medzi Iteratorom a ListIteratorom.
| Iterátor | ListIterator |
|---|---|
| Prvky prítomné v kolekcii môže prechádzať iba smerom dopredu. | Dokáže prechádzať prvkami prítomnými v zbierke v smere dopredu aj dozadu. |
| Pomáha prechádzať mapou, zoznamom a súpravou. | Môže prejsť iba cez zoznam a nie cez ostatné dva. |
| Indexy nie je možné získať pomocou Iterátora. | Má metódy ako nextIndex() a previousIndex() na získanie indexov prvkov kedykoľvek počas prechádzania zoznamu. |
| Nie je možné upraviť ani nahradiť prvky prítomné v zbierke | Prvky môžeme upraviť alebo nahradiť pomocou množiny (E e) |
Viac informácií nájdete v článku – Rozdiel medzi Iterátorom a ListIteratorom
21. Aký je rozdiel medzi Iterátorom a Enumeráciou?
Iterátor: Je to univerzálny iterátor, pretože ho môžeme použiť na akýkoľvek objekt Collection. Pomocou iterátora môžeme vykonávať operácie čítania aj odstraňovania.
Syntax:
// Here 'c' is any Collection object. itr is of // type Iterator interface and refers to 'c' Iterator itr = c.iterator();>
Enumerácia: Enumerácia (alebo enum) je typ údajov definovaný používateľom. Používa sa hlavne na priraďovanie mien integrálnym konštantám, vďaka názvom je program ľahko čitateľný a udržiavaný.
Syntax:
// A simple enum example where enum is declared // outside any class (Note enum keyword instead of // class keyword) enum Color { RED, GREEN, BLUE; }> | Iterátor | Enumerácia |
|---|---|
| Iterátor je univerzálny kurzor, pretože je použiteľný pre všetky triedy kolekcií. | Enumerácia nie je univerzálny kurzor, pretože sa vzťahuje iba na staršie triedy. |
| Iterátor má metódu remove(). | Enumerácia nemá metódu remove(). |
| Iterátor môže vykonávať úpravy (napr. pomocou metódy remove(), ktorá odstráni prvok z kolekcie počas prechodu). | Enumeračné rozhranie funguje ako rozhranie len na čítanie, pri prechádzaní prvkami kolekcie nie je možné vykonávať žiadne úpravy kolekcie. |
| Iterátor nie je staršie rozhranie. Iterátor možno použiť na prechádzanie HashMap, LinkedList, ArrayList, HashSet, TreeMap a TreeSet. | Enumerácia je staršie rozhranie, ktoré sa používa na prechádzanie vektorom a hashtable. |
Viac informácií nájdete v článku – Rozdiel medzi Iterátorom a Enumeráciou
22. Aké sú vlastnosti Java Hashmap?
HashMap je podobná HashTable, ale nie je synchronizovaná. Umožňuje nám to uložiť aj nulové kľúče, ale mal by existovať iba jeden objekt nulového kľúča a môže existovať ľubovoľný počet hodnôt null. Táto trieda neposkytuje žiadne záruky, pokiaľ ide o poradie mapy. Ak chcete použiť túto triedu a jej metódy, musíte importovať java.util. HashMap balík alebo jeho nadtriedu.

HashMap v jazyku Java
Syntax:
public class HashMap extends AbstractMap implements Map, Cloneable, Serializable>
Parametre: Vyžaduje si dva parametre, konkrétne takto:
- Typ kľúčov udržiavaných touto mapou (K)
- Typ mapovaných hodnôt (V)
Viac informácií nájdete v článku – HashMap v Jave s príkladmi
23. Čo sú rozhrania zberu?
The Zbierka rozhranie je členom Java Collections Framework. Je súčasťou java.util balík. Je to jedno z koreňových rozhraní hierarchie kolekcií. Rozhranie Collection nie je priamo implementované žiadnou triedou. Implementuje sa však nepriamo prostredníctvom svojich podtypov alebo podrozhraní, ako je zoznam, front a sada.
Napríklad, trieda HashSet implementuje rozhranie Set, ktoré je podrozhraním rozhrania Collection. Ak implementácia kolekcie neimplementuje konkrétnu operáciu, mala by definovať zodpovedajúcu metódu na vyvolanie výnimky UnsupportedOperationException.
Hierarchia zbierky:

Rozhranie kolekcie v jazyku Java
24. Vysvetlite rozhranie zoznamu.

Rozhranie triedy v jazyku Java
V jazyku Java umožňuje rozhranie Zoznam používateľovi uložiť usporiadanú kolekciu objektov. Zoznam je podriadeným rozhraním kolekcie. V kolekcii je zoznam usporiadanou kolekciou objektov, ktoré môžu mať duplicitné hodnoty. Keďže Zoznam zachováva poradie vloženia, umožňuje pozičný prístup a vkladanie, čo tiež umožňuje duplicitné hodnoty.
Syntax:
public interface List extends Collection ;>
Toto rozhranie zoznamu je implementované rôznymi triedami ako ArrayList, Vector, Stack, atď. Keďže všetky podtriedy implementujú zoznam, môžeme vytvoriť inštanciu objektu zoznamu s ktoroukoľvek z týchto tried.
Príklad:
Zoznam al = new ArrayList ();
Zoznam ll = new LinkedList ();
Zoznam v = nový vektor ();Kde T je typ objektu

Zoznam polí v jazyku Java
Triedy, ktoré implementujú rozhranie List, sú nasledovné:
- ArrayList
- LinkedList
- Vektor
- Stoh
25. Napíšte program na konverziu daného poľa na kolekciu pomocou metódy asList().
Na konverziu dát založených na poli na založené na kolekcii môžeme použiť java.util.Arrays trieda. Táto trieda poskytuje statickú metódu asList(T… a), ktorá konvertuje pole na kolekciu.
Java
// Convert an Array into Collection in Java> // import java util library> import> java.util.*;> > // class for writing logic of the problem> public> class> ArrayToCollection {> >public> static> void> main(String args[])> >{> >// array input> >String students[] = {>'Kamlesh'>,>'Abhay'>,> >'Abhishek'>,>'Shivansh'> };> > >// printing input elements for comparison> >System.out.println(>'Array input: '> >+ Arrays.toString(students));> > >// converting array into Collection> >// with asList() function> >List studentList = Arrays.asList(students);> > >// print converted elements> >System.out.println(>'Converted elements: '> >+ studentList);> >}> }> |
xml komentár
>
>Výkon
Array input: [Kamlesh, Abhay, Abhishek, Shivansh] Converted elements: [Kamlesh, Abhay, Abhishek, Shivansh]>
26. Rozlišujte medzi HashSet a HashMap
| HashSet | HashMap |
|---|---|
| HashSet implementuje rozhranie Set | HashMap implementuje rozhranie mapy |
| Nie sú povolené žiadne duplikáty | Áno, sú povolené duplicitné hodnoty, ale nie je povolený žiadny duplicitný kľúč |
| V HashSet sú povolené fiktívne hodnoty. | V HashMape nie sú povolené žiadne fiktívne hodnoty. |
| Počas operácie pridávania je potrebný jeden objekt | Počas operácie pridávania sú potrebné 2 objekty |
| Rýchlosť je porovnateľne nižšia ako HashMap | Rýchlosť je porovnateľne vyššia ako HashSet, pretože tu bola použitá technika hashovania. |
| Mať jednu nulovú hodnotu | Jeden kľúč null a ľubovoľný počet hodnôt null |
| Na vkladanie sa používa metóda Add(). | Na vkladanie sa používa metóda put (). |
Viac informácií nájdete v článku – Rozdiel medzi HashMap a HashSet
27. Rozlišujte medzi HashSet a HashTable.
| HashSet | HashTable |
|---|---|
| HashSet umožňuje NULL Elements | HashTable nepovoľuje prvky NULL. |
| Nie je zaručené, že objekty, ktoré vložíte do HashSet, budú vložené v rovnakom poradí. Objekty sa vkladajú na základe ich hash kódu. LinkedHashSet možno použiť na udržanie poriadku. | HashTable neudržiava poradie vloženia. |
| HashSet nie je synchronizovaný, ale môže byť synchronizovaný externe. | HashTable je synchronizovaná. |
| metóda add() sa používa na vloženie do HashSet | metóda put() sa používa na vloženie do HashTable |
28. Aká je predvolená veľkosť faktora zaťaženia v kolekcii založenej na hašovaní?
Keď sa faktor zaťaženia zvyšuje, kapacita sa zvyšuje, takže prevádzková zložitosť HashMap zostáva O(1), ak pomer aktuálneho prvku k počiatočnej kapacite prekročí prah. Význam operačnej zložitosti O(1) znamená, že operácie vyhľadávania a vkladania trvajú konštantne dlho. Predvolená veľkosť faktora zaťaženia je 0,75 . Predvolená kapacita sa vypočíta vynásobením počiatočnej kapacity koeficientom zaťaženia.
Viac informácií nájdete v článku – Faktor zaťaženia v HashMap v Jave s príkladmi
Otázky týkajúce sa pohovoru Java Collection pre skúsených
29. Aký je rozdiel medzi Comparable a Comparator v Jave?
Java poskytuje dve rozhrania na triedenie objektov pomocou údajových členov triedy:
- Porovnateľné
- Porovnávač
| Porovnateľné | Porovnávač |
|---|---|
| Porovnateľné rozhranie poskytuje jedinú postupnosť triedenia. | Rozhranie komparátora poskytuje viacero triediacich sekvencií. |
| Aktuálna trieda je upravená porovnateľným rozhraním | Skutočná trieda nie je upravená rozhraním komparátora. |
| Na triedenie prvkov sa používa metóda CompareTo(). | Na triedenie prvkov sa používa metóda Compare(). |
| Porovnateľné sa nachádza v balíku java.lang | Porovnávač sa nachádza v balíku java.util |
Viac informácií nájdete v článku – Porovnateľné vs komparátor v Jave
30. Aký je rozdiel medzi rýchlym a bezpečným zlyhaním?
Iterátory v jazyku Java sa používajú na iteráciu objektov Collection. Fail-Fast iterátory okamžite vyhodia ConcurrentModificationException ak existuje a konštrukčná úprava zbierky. Štrukturálna úprava znamená pridanie alebo odstránenie akéhokoľvek prvku z kolekcie, kým vlákno iteruje cez túto kolekciu. Iterátor na triedach ArrayList a HashMap sú niektoré príklady iterátora s rýchlym zlyhaním.
| Fail-Fast | Bezpečné pri poruche |
|---|---|
| Výnimka ConcurrentModificationException je vyvolaná počas úpravy objektu počas procesu iterácie. | Nie je vyvolaná žiadna výnimka |
| Fail-Fast potrebuje počas procesu menej pamäte. | Iterátor odolný voči poruchám vyžaduje počas procesu viac pamäte. |
| Objekt klonu sa nevytvorí počas procesu iterácie. | Počas procesu iterácie sa vytvorí klonovaný objekt alebo kópia. |
| Fail-Fast neumožňuje modifikáciu počas procesu iterácie. | Fail-Safe umožňuje modifikáciu počas procesu iterácie. |
| Fail-Fast je rýchly, | Fail-Safe je o niečo pomalší ako Fail-Safe. |
| Príklady: ArrayList, Vector, HashMap, HashSet atď. | Príklady: ConcurrentHashMap, CopyOnWriteArrayList atď. |
Viac informácií nájdete v článku – Iterátory rýchleho zlyhania a bezpečného zlyhania v jazyku Java
31. Napíšte program na iteráciu zoznamu pomocou výrazu lambda.
Iteráciu je možné vykonať pomocou a lambda výraz.
Syntax:
list_name.forEach(variable->{//blok kódu})> Java
// Java Program to iterate over a List> // using forEach()> > // Importing all classes of> // java.util method> import> java.util.*;> > // Class> class> GFG {> > >// Main driver method> >public> static> void> main(String args[])> >{> >// Creating an ArrayList> >List l =>new> ArrayList();> > >// Adding elements to the List> >// Custom inputs> >l.add(>'Geeks'>);> >l.add(>'for'>);> >l.add(>'Geeks'>);> > >// Lambda expression printing all elements in a List> >l.forEach((temp) ->{ System.out.println(temp); });> >}> }> |
>
>Výkon
Geeks for Geeks>
Viac informácií nájdete v článku – Iterujte cez zoznam v jazyku Java
32. Čo je IdentityHashMap?
IdentityHashMap implementuje rozhranie mapy pomocou Hashtable, pričom porovnáva kľúče (a hodnoty) pomocou referenčnej rovnosti namiesto rovnosti objektov. Táto trieda implementuje rozhranie Map, ale zámerne porušuje všeobecnú zmluvu Map, ktorá vyžaduje, aby sa objekty porovnávali pomocou metódy equals(). Táto trieda sa používa, keď používateľ umožňuje porovnávanie objektov pomocou odkazov. Patrí do balíka java.util.
Viac informácií nájdete v článku – Trieda IdentityHashMap v jazyku Java
33. Napíšte program v Jave na zobrazenie obsahu HashTable pomocou enumerácie.
Trieda hashtable implementuje hašovaciu tabuľku, ktorá mapuje kľúče na hodnoty. Akýkoľvek nenulový objekt možno použiť ako kľúč alebo ako hodnotu. Na úspešné uloženie a načítanie objektov z hašovacej tabuľky musia objekty použité ako kľúče implementovať metódu hashCode a metódu rovná sa. Nižšie je uvedený program na zobrazenie obsahu HashTable pomocou enumerácie:
Java
// Java Program to Demonstrate Getting Values> // as an Enumeration of Hashtable class> > import> java.io.*;> import> java.util.Enumeration;> import> java.util.Hashtable;> > // Main class> // EnumerationOnKeys> public> class> GFG {> > >// Main driver method> >public> static> void> main(String[] args)> >{> >// Creating an empty hashtable> >Hashtable hash> >=>new> Hashtable();> > >// Inserting key-value pairs into hash table> >// using put() method> >hash.put(>1>,>'Geeks'>);> >hash.put(>2>,>'for'>);> >hash.put(>3>,>'Geeks'>);> > >// Now creating an Enumeration object> >// to read elements> >Enumeration e = hash.elements();> > >// Condition holds true till there is> >// single key remaining> > >// Printing elements of hashtable> >// using enumeration> >while> (e.hasMoreElements()) {> > >// Printing the current element> >System.out.println(e.nextElement());> >}> >}> }> |
>
>Výkon
Geeks for Geeks>
34. Napíšte program v jazyku Java, aby ste získali pohľad na kolekciu hodnôt prítomných v HashMap.
Trieda HashMap Java má metódu java.util.HashMap.values() na vytváranie kolekcií z hodnôt HashMap. V podstate vracia zobrazenie kolekcie hodnôt HashMap.
Java
// Java code to illustrate the values() method> import> java.util.*;> > public> class> Hash_Map_Demo {> >public> static> void> main(String[] args)> >{> > >// Creating an empty HashMap> >HashMap hash_map> >=>new> HashMap();> > >// Mapping string values to int keys> >hash_map.put(>0>,>'Welcome'>);> >hash_map.put(>1>,>'to'>);> >hash_map.put(>2>,>'Geeks'>);> >hash_map.put(>3>,>'4'>);> >hash_map.put(>4>,>'Geeks'>);> > >// Displaying the HashMap> >System.out.println(>'Initial Mappings are: '> >+ hash_map);> > >// Using values() to get the set view of values> >System.out.println(>'The collection is: '> >+ hash_map.values());> >}> }> |
c boolovská hodnota
>
>Výkon
Initial Mappings are: {0=Welcome, 1=to, 2=Geeks, 3=4, 4=Geeks} The collection is: [Welcome, to, Geeks, 4, Geeks]> Viac informácií nájdete v článku – HashMap values() Metóda v Jave
35. Napíšte program na spojenie dvoch ArrayList do jedného ArrayListu.
Vzhľadom na dva ArrayListy v Jave je našou úlohou pripojiť sa k týmto ArrayListom.
Java
// Java program to demonstrate> // How to join ArrayList> > import> java.util.*;> > public> class> GFG {> >public> static> void> main(String args[])> >{> > >ArrayList list_1 =>new> ArrayList();> > >list_1.add(>'Geeks'>);> >list_1.add(>'For'>);> >list_1.add(>'ForGeeks'>);> > >// Print the ArrayList 1> >System.out.println(>'ArrayList 1: '> + list_1);> > >ArrayList list_2 =>new> ArrayList();> > >list_2.add(>'GeeksForGeeks'>);> >list_2.add(>'A computer portal'>);> > >// Displaying the ArrayList 2> >System.out.println(>'ArrayList 2: '> + list_2);> > >// using Collection.addAll() method to join two> >// arraylist> >list_1.addAll(list_2);> > >// Print the joined ArrayList> >System.out.println(>'Joined ArrayLists: '> + list_1);> >}> }> |
>
>Výkon
ArrayList 1: [Geeks, For, ForGeeks] ArrayList 2: [GeeksForGeeks, A computer portal] Joined ArrayLists: [Geeks, For, ForGeeks, GeeksForGeeks, A computer portal]>
Viac informácií nájdete v článku – Pripojte sa k dvom ArrayListom v Jave
36. Ako môžete synchronizovať ArrayList v Jave?
Pomocou metódy Collections.synchronizedList() môžeme synchronizovať naše kolekcie v jazyku Java. SynchronizedList() vráti synchronizovaný zoznam (bezpečný pre vlákna) podporovaný výberom.
Java
// Java program to show synchronization of ArrayList> import> java.io.*;> import> java.util.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >// Non Synchronized ArrayList> >List list =>new> ArrayList();> > >list.add(>'Eat'>);> >list.add(>'Coffee'>);> >list.add(>'Code'>);> >list.add(>'Sleep'>);> >list.add(>'Repeat'>);> > >// Synchronizing ArrayList in Java> >list = Collections.synchronizedList(list);> > >// we must use synchronize block to avoid> >// non-deterministic behavior> >synchronized> (list)> >{> >Iterator it = list.iterator();> >while> (it.hasNext()) {> >System.out.println(it.next());> >}> >}> >}> }> |
>
>Výkon
Eat Coffee Code Sleep Repeat>
37. Čo je trieda vlastností v jazyku Java?
Trieda vlastností je podtriedou Hashtable. Trieda vlastností uchováva zoznam hodnôt, ktorých kľúčom je reťazec a ktorých hodnota je tiež reťazec. Vlastnosti môžu definovať iné zoznamy tried vlastností, ale predvolená hodnota je vlastnosti.
Vlastnosti triedy Vlastnosti:
- Vlastnosť je podtriedou Hashtable.
- Súbor Vlastnosti sa používa na ukladanie a získavanie typu údajov reťazca pre zoznam hodnôt, kde kľúčom je reťazec a hodnota je tiež reťazec.
- Ak pôvodný zoznam vlastností neobsahuje určitú kľúčovú vlastnosť, namiesto toho sa vyhľadá predvolený zoznam vlastností.
- Objekty môžu byť zdieľané viacerými vláknami bez externej synchronizácie.
- Triedu vlastností možno použiť na získanie vlastností systému.
Viac informácií nájdete v článku – Trieda vlastností v jazyku Java
38. Čo sa stane, ak použijete HashMap vo viacvláknovej aplikácii Java?
V prostredí s viacerými vláknami, ak viaceré vlákna štrukturálne zmenia mapu, ako je pridávanie, odstraňovanie alebo úprava mapovaní, môže sa poškodiť vnútorná dátová štruktúra HashMap a môžu tam chýbať niektoré odkazy, nesprávne položky a samotná mapa sa môže poškodiť. stať sa úplne zbytočným. HashMap by ste teda nemali používať v súbežnej aplikácii; namiesto toho použite ConcurrentHashMap alebo Hashtable, ktoré sú bezpečné pre vlákna. ConcurrentHashMap obsahuje všetky metódy Hashtable, ako aj úplnú súbežnosť vyhľadávaní a aktualizácií.
Ako sa ThreadSafeConcurrentHashMap stal bezpečným pre vlákna?
- Trieda java.util.Concurrent.ConcurrentHashMap poskytuje bezpečnosť vlákna rozdelením mapy na segmenty, čo umožňuje uzamknutie iba raz na segment, t.j. raz pre každé vlákno.
- Operácia čítania v ConcurrentHashMap nevyžaduje zámok.
Viac informácií nájdete v článku – Ako ConcurrentHashMap dosahuje bezpečnosť vlákien v Jave?
39. Čo sa stane, ak dva rôzne kľúče HashMap vrátia rovnaký hashcode ()?
Keď dva rôzne kľúče HashMap vrátia rovnaký hash kód, skončia v rovnakom vedre; preto dôjde ku kolíziám. V prípade kolízie, t. j. index dvoch alebo viacerých uzlov je rovnaký, uzly sú spojené zoznamom prepojení, t. j. na druhý uzol odkazuje prvý uzol a na tretí druhý, atď.
Viac informácií nájdete v článku – Interné fungovanie HashMap v Jave
40. Čo je WeakHashMap?
WeakHashMap implementuje rozhranie mapy. Na rozdiel od HashMap WeakHashMap umožňuje zhromažďovanie odpadu, aj keď objekt špecifikovaný ako kľúč neobsahuje žiadne odkazy napriek tomu, že je spojený s WeakHashMap. Inými slovami, Garbage Collector je lepší ako WeakHashMap.
Viac informácií nájdete v článku – Hashmap vs WeakHashMap v Jave
41. Čo je UnsupportedOperationException?
V kontexte API alebo implementácií zoznamov je UnsupportedOperationException bežnou výnimkou. Výnimka je vyvolaná, keď nie je možné vykonať požadovanú operáciu. Táto trieda je členom Java Collections Framework.
Syntax:
public class UnsupportedOperationException extends RuntimeException>
Viac informácií nájdete v článku – UnsupportedOperationException
42. Ako vytvoriť kolekciu určenú len na čítanie v jazyku Java?
Vytvorenie kolekcie iba na čítanie zahŕňa obmedzenie objektu iba na načítanie údajov a nepridávanie ani odstraňovanie údajov. Java má rôzne metódy pre rôzne typy kolekcií, ako napríklad unmodifiableCollection(), unmodifiableMap(), ununmodifiableSet() atď. java.util.Trieda collections definuje všetky metódy. Metóda unmodifiableCollection() vytvorí kolekciu len na čítanie. Vyžaduje si to odkaz na triedu Collection. Ak máme objekt Set Interface, môžeme použiť ununmodifiableSet() aby bol iba na čítanie.
Viac informácií nájdete v článku – Ako vytvoriť kolekciu iba na čítanie v jazyku Java?
43. Rozdiel medzi PriorityQueue a TreeSet v Jave?
| PriorityQueue | TreeSet |
|---|---|
| PriorityQueue prichádza v JDK 1.5. | TreeSet prichádza v JDK 1.4. |
| Štruktúra údajov, ktorú používa PriorityQueue, je Queue | Štruktúra údajov, ktorú používa TreeSet, je Set. |
| Duplicitné prvky sú povolené. | Duplicitné prvky nie sú povolené. |
| Okrem koreňového prvku sa ostatné prvky neriadia žiadnym konkrétnym poradím v PriorityQueue. | V TreeSet zostanú všetky prvky v zoradenom poradí. |
| Pomocou PriorityQueue môžeme získať najväčší alebo najmenší prvok v čase O(1). | TreeSet neposkytuje spôsob, ako získať najväčší alebo najmenší prvok v čase O(1), ale keďže sú zoradené v poradí, získa prvý alebo posledný prvok v čase O(1). |
Viac informácií nájdete v článku – Rozdiel medzi PriorityQueue a TreeSet
44. Čo je to diamantový operátor v Jave?
Diamantové operátory sa používajú na zjednodušenie používania generík pri vytváraní objektov, pričom sa vyhýbajú nekontrolovaným upozorneniam v programe. Keď bol v Java 7 zavedený operátor Diamond, môžeme vytvoriť objekt bez uvedenia generického typu na pravej strane výrazu, ako je uvedené nižšie.
Syntax:
List list = new ArrayList();>
Viac informácií nájdete v článku – Diamantový operátor
45. Ako funguje TreeMap v Jave?
Stromová mapa ukladá páry kľúč-hodnota, ale TreeMap zoraďuje kľúče vzostupne a nie zostupne ako HashMap. V závislosti od použitého konštruktora sa TreeMap zoradí buď na základe svojich kľúčov, alebo podľa komparátora. V TreeMap sú prvky zoradené na základe červeno-čierneho stromu. Červeno-čierny strom je samovyvažujúci binárny vyhľadávací strom, kde každý uzol má extra bit a tento bit sa často interpretuje ako farba (červená alebo čierna). Tieto farby sa používajú na zabezpečenie toho, aby strom zostal vyvážený počas vkladania a odstraňovania.

Štruktúra uzla v Jave
Viac informácií nájdete v článku – Interné fungovanie TreeMap v Jave
46. Uveďte spôsoby, ako iterovať cez Mapu v jave?
Trieda HashMap poskytuje rozhranie Java Map ukladaním údajov do párov (kľúč, hodnota) a prístupom k nim pomocou indexu iného typu. Na použitie tejto triedy je potrebné importovať java.util.HashMap balík alebo jeho nadtriedu.
Existuje mnoho spôsobov iterácie cez HashMap, z ktorých 5 je uvedených nižšie:
- Iterujte cez HashMap EntrySet pomocou iterátorov.
- Iterujte cez HashMap KeySet pomocou Iteratora.
- Iterujte HashMap pomocou slučky for-each.
- Iterácia cez HashMap pomocou výrazov Lambda.
- Prejdite cez HashMap pomocou Stream API.
Viac informácií nájdete v článku – Ako iterovať HashMap v Jave
47. Čo je CopyOnWriteArrayList v jazyku Java?

CopyOnWriteArrayList v jazyku Java
JDK 1.5 predstavil vylepšenú verziu ArrayList s názvom CopyOnWriteArrayList, kde sú všetky úpravy (pridať, nastaviť, odstrániť atď.) implementované novou kópiou. Dá sa nájsť na java.util.concurrent. Je to dátová štruktúra vytvorená na použitie v súbežnom prostredí. V prostredí založenom na vlákne je CopyOnWriteArrayList určený na časté čítanie a zriedkavú aktualizáciu. CopyOnWriteArrayList je verzia ArrayList bezpečná pre vlákna.
Viac informácií nájdete v článku – CopyOnWriteArrayList v jazyku Java
48. Čo je EnumMap v jazyku Java?
EnumMap je implementácia rozhrania mapy špecifického pre typy enumerácií. Trieda EnumMap je členom Java Collections Framework a nie je synchronizovaná. Rozširuje AbstractMap a implementuje rozhranie Map v jazyku Java. EnumMap patrí do balíka java.util.
Syntax:
verejná trieda EnumMap
rozširuje AbstractMap implementuje Serializable, Cloneable // K musí rozšíriť Enum, čo vynucuje požiadavku, že kľúče musia byť špecifikovaného typu enum.
Parametre:
- Kľúčový typ objektu
- Typ objektu hodnoty

EnumMap v jazyku Java
Viac informácií nájdete v článku – Trieda EnumMap v jazyku Java
49. Ako interne funguje hashmap?
HashMap funguje na princípe hashovania. HashMap obsahuje pole Node a Node môže predstavovať triedu s nasledujúcimi objektmi:
- int hash
- K kľúč
- hodnota V
- Ďalej uzol
Vnútorné fungovanie HashMap:
- Hašovanie
- Vedrá
- Výpočet indexu v Hashmap
Viac informácií nájdete v článku – Interné fungovanie HashMap v Jave
päťdesiat. Prečo sa iterátor v hashmap považuje za rýchly?
iterátory rýchle pri zlyhaní okamžite vyvolávajú výnimky súbežných úprav, ak sa akékoľvek vlákno zvonku pokúsi upraviť kolekciu, na ktorej iterujú. Funkcia rýchleho zlyhania zaisťuje, že iterátor okamžite zlyhá, ak zistí, že akákoľvek úprava kolekcie povedie v budúcnosti k anomálnemu správaniu.
Zlyhať rýchlo funkcia zaisťuje, že ak má iterátor pocit, že modifikácia kolekcie by kedykoľvek v budúcnosti viedla k anomálnemu správaniu, okamžite zlyhá.
Príklad:
Java
// Java code to demonstrate remove> // case in Fail-fast iterators> > import> java.io.*;> import> java.util.ArrayList;> import> java.util.Iterator;> > public> class> GFG {> >public> static> void> main(String[] args)> >{> >ArrayList arr =>new> ArrayList();> >arr.add(>1>);> >arr.add(>2>);> >arr.add(>3>);> >arr.add(>4>);> >arr.add(>5>);> > >Iterator it = arr.iterator();> >while> (it.hasNext()) {> >if> (it.next() ==>2>) {> >// will not throw Exception> >it.remove();> >}> >}> > >System.out.println(arr);> > >it = arr.iterator();> >while> (it.hasNext()) {> >if> (it.next() ==>3>) {> >// will throw Exception on> >// next call of next() method> >arr.remove(>3>);> >}> >}> >}> }> |
>
>
Výkon:
[1, 3, 4, 5] Exception in thread 'main' java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901) at java.util.ArrayList$Itr.next(ArrayList.java:851) at FailFastExample.main(FailFastExample.java:28)>
Záver
Kolekcie Java je dôležité pochopiť pre vývojárov alebo programátorov Java, pretože Java je široko používaná v rôznych odvetviach. Je dôležité, aby vývojári dobre rozumeli základným konceptom kolekcií Java. Java je jeden z najpoužívanejších jazykov v top firmách ako napr Uber , Airbnb , Google , Netflix , Instagram , Spotify, Amazon , atď. Aby ste sa dostali do týchto spoločností alebo iných IT spoločností, musíte zvládnuť tieto najčastejšie kladené otázky týkajúce sa pohovorov v kolekciách Java, aby ste prelomili ich online hodnotenie a technický rozhovor založený na jazyku Java.
Ak si chcete precvičiť otázky týkajúce sa kódovania, zberné programy JAVA môže byť užitočným zdrojom.
Otázky týkajúce sa rozhovoru o kolekciách Java – často kladené otázky
1. Čo sú kolekcie v otázkach rozhovoru v jazyku Java?
Kolekcia v jazyku Java je rámec používaný na ukladanie a manipuláciu s kolekciami objektov.
2. Aké sú 4 triedy kolekcií v jazyku Java?
V Jave je veľa kolekcií, ale z nich sú najpoužívanejšie kolekcie:
np.histogram
- ArrayList
- LinkedList
- HashSet
- Stoh
3. Môže mať HashMap duplicitné kľúče?
Nie, HashMap nemôže mať duplicitné kľúče. Keďže HashMap je jednou z kolekcií v jazyku Java, ukladá hodnotu vo forme kľúč-hodnota a každý kľúč má svoju vlastnú hodnotu. Keďže žiadny kľúč nemôže mať dve hodnoty, znamená to, že v HashMape nemôžeme mať duplicitné kľúče.
4. Prečo pole nie je kolekcia?
Pole nie je kolekcia, je to všetko kvôli rozdielu vo funkčnosti medzi kolekciami a poliami, z ktorých niekoľko je uvedených nižšie:
- Po deklarovaní už nie je možné zmeniť veľkosť poľa
- Polia môžu obsahovať iba prvky homogénnych typov údajov.
- Pole môže obsahovať primitívne dátové typy aj objekty, zatiaľ čo v kolekciách môže obsahovať iba obalové objekty.