Tu sú otázky týkajúce sa rozhovorov o zbierkach Java pre čerstvých i skúsených kandidátov na získanie vysnívanej práce.
1) Čo je to framework v Jave?
Rámec je populárna a pripravená architektúra, ktorá obsahuje množinu tried a rozhraní.
2) Čo je to framework Collection v Jave?
Collection Framework je zoskupenie tried a rozhraní, ktoré sa používa na ukladanie a správu objektov. Poskytuje rôzne triedy ako Vector, ArrayList, HashSet, Stack atď. Rámec Java Collection je možné použiť aj pre rozhrania ako Queue, Set, List atď.
3) Vysvetlite triedu zbierok
java.util.Collections je trieda pozostávajúca zo statických metód, ktoré fungujú na zbierkach. Obsahuje polymorfné algoritmy na prácu so zbierkami, tzv. „Wrappermi“. Táto trieda obsahuje metódy pre algoritmy, ako je binárne triedenie, vyhľadávanie, miešanie atď.
4) Čo je hashCode ()?
HashCode () je metóda, ktorá vracia celočíselný hash kód.
5) Rozlišujte medzi ArrayList a Vector v rámci kolekcie Java.
ArrayList | Vektor |
ArrayList nie je možné synchronizovať. | Vektor môže byť synchronizovaný. |
Nie je to trieda dedičstva. | Je to trieda dedičstva. |
Môže zvýšiť svoju veľkosť o 50% veľkosti poľa. | Môže zväčšiť svoju veľkosť zdvojnásobením veľkosti poľa. |
ArrayList nie je bezpečný pre vlákna. | Vektor je bezpečný pre vlákna. |
6) Čo je ArrayList v Jave?
ArrayList je dátová štruktúra, ktorú je možné roztiahnuť tak, aby sa do nej zmestili ďalšie prvky, a po odstránení prvkov sa zmenší späť na menšiu veľkosť. Je to veľmi dôležitá dátová štruktúra užitočná pri manipulácii s dynamickým správaním prvkov.
7) Rozlišujte medzi Iterátorom a ListIterátorom
Rozdiel medzi Iteratorom a ListIteratorom je:
Iterátor | ListIterator |
Iterátor môže prechádzať prvkami poľa v smere dopredu. | ListIterator môže prechádzať prvkami poľa dozadu aj dopredu. |
Môže byť použitý v poradí, zozname a zostave. | Môže byť použitý v zozname. |
Môže vykonávať iba operáciu odstránenia. | Môže prechádzať zbierkou, pridávať, odstraňovať a nastavovať operácie. |
8) Aký je rozdiel medzi Iterátorom a Enumeráciou?
Rozdiel medzi Iterátorom a Enumeráciou
Iterátor | Vymenovanie |
Iterátor môže prechádzať tak dedičstvom, ako aj nedobytnými prvkami. | Výpočet môže prechádzať iba starými prvkami. |
Iterátor je rýchly. | Výpočet nie je rýchly. |
Iterátor je v porovnaní s výpočtom veľmi pomalý. | Výpočet je v porovnaní s Iterátorom rýchly. |
Iterátor môže vykonať operáciu odstránenia pri prechode kolekciou. | Výpočet môže vykonávať iba operáciu prechodu kolekcie. |
9) Definujte BlockingQueue
BlockingQueue je rozhranie používané v prostredí Java, ktoré môže rozšíriť front. Poskytuje súbežnosť v rôznych operáciách vo fronte, ako je načítanie, vloženie, odstránenie atď.
Fronta čaká, kým v čase načítania akýchkoľvek prvkov nebude prázdna. BlockingQueue by nemal obsahovať nulové prvky. Implementácia tohto frontu je bezpečná pre vlákna.
Syntax BlockingQueue je:
public interface BlockingQueueextends Queue
10) Vysvetlite metódu prepísania equals ()
Na kontrolu podobnosti medzi dvoma objektmi sa používa metóda equals. V prípade, že programátor chce skontrolovať objekt na základe vlastnosti, musí byť prepísaný.
11) Aký je rozdiel medzi komparátorom a komparátorom?
Rozdiel medzi komparátorom a komparátorom je:
Porovnateľné | Komparátor |
Comparable poskytuje metódu compareTo () na triedenie prvkov v Jave. | Comparator poskytuje metódu porovnávania () na triedenie prvkov v Jave. |
Porovnateľné rozhranie je k dispozícii v balíku java.lang. | Porovnávacie rozhranie je k dispozícii v jave. util balíček. |
Logika triedenia musí byť v tej istej triede, ktorej objekt sa chystáte triediť. | Logika triedenia by mala byť v samostatnej triede, aby bolo možné písať rôzne triedenia na základe rôznych atribútov objektov. |
Trieda, ktorej objekty chcete triediť, musí implementovať porovnateľné rozhranie. | Class, ktorého objekty chcete triediť, nemusíte implementovať komparátorové rozhranie. |
Poskytuje jednotlivé triediace sekvencie. | Poskytuje viac triediacich sekvencií. |
Táto metóda umožňuje triedenie údajov podľa prirodzeného poradia triedenia. | Táto metóda triedi údaje podľa prispôsobeného poradia triedenia. |
Ovplyvňuje pôvodnú triedu. tj je zmenená skutočná trieda. | Neovplyvňuje pôvodnú triedu, tj skutočná trieda sa nemení. |
Implementované v API často kalendárom, triedami obaľovača, dátumom a reťazcom. | Je implementovaný na triedenie inštancií tried tretích strán. |
Všetky triedy wrapperov a triedy String implementujú porovnateľné rozhranie. | Jediné implementované triedy komparátora sú Collator a RuleBasedColator. |
12) Vysvetlite na príklade rovná sa ()
Equals () overuje, či sa číselný objekt rovná objektu, ktorý sa odovzdáva ako argument alebo nie.
Syntax metódy equals () je:
public boolean equals(Object o)
Táto metóda trvá dva parametre 1) akýkoľvek objekt, 2) návratová hodnota. Vráti hodnotu true, ak zadaný argument nemá hodnotu null a je objektom podobného typu s rovnakou číselnou hodnotou.
Príklad:
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) Uveďte výhody generického zberu
Výhody použitia generickej zbierky sú:
- Ak programátori používajú generické triedy, nevyžadujú obsadenie.
- Je typovo bezpečný a dá sa skontrolovať v čase kompilácie.
- Poskytuje stabilitu kódu detekciou chyby v čase kompilácie.
14) Vysvetlite spôsob prevodu ArrayList do Array a Array do ArrayList
Programátori môžu prevádzať pole na pole ArrayList pomocou metódy asList () triedy Arrays. Je to statická metóda triedy Arrays, ktorá prijíma objekt List. Syntax metódy asList () je:
Arrays.asList(item)
Programátori Java môžu prevádzať ArrayList na objekt List pomocou syntaxe:
List_object.toArray(new String[List_object.size()])
15) Uveďte príklad ArrayList
Príklad reverzného zoznamu polí je:
import java.util.ArrayList;class Test_ArrayList {public static void main(String[] args) {//Creating a generic ArrayListArrayListarlTest = new ArrayList ();//Size of arrayListSystem.out.println("Size of ArrayList at creation: " + arlTest.size());//Lets add some elements to itarlTest.add("D");arlTest.add("U");arlTest.add("K");arlTest.add("E");//Recheck the size after adding elementsSystem.out.println("Size of ArrayList after adding elements: " + arlTest.size());//Display all contents of ArrayListSystem.out.println("List of all elements: " + arlTest);//Remove some elements from the listarlTest.remove("D");System.out.println("See contents after removing one element: " + arlTest);//Remove element by indexarlTest.remove(2);System.out.println("See contents after removing element by index: " + arlTest);//Check size after removing elementsSystem.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) Uveďte príklad na zoradenie poľa v zostupnom poradí
Príklad zoradenia poľa v zostupnom poradí je:
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 sortSystem.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) Vysvetlite základné rozhrania rámca zbierok Java
Rámec kolekcie Java je koreňom hierarchie zbierok. Predstavuje skupinu objektov ako svoje prvky. Programovací jazyk Java neposkytuje priamu implementáciu tohto rozhrania.
- Sada: Sada je kolekcia bez duplicitných prvkov. Na ukladanie prvkov používa hashtable.
- Zoznam: Zoznam je usporiadaná kolekcia, ktorá môže obsahovať duplicitné prvky. Umožňuje vývojárom prístup ku všetkým prvkom z doručenej pošty. Zoznam je ako pole s dynamickou dĺžkou.
- MAPA: Je to objekt, ktorý mapuje kľúče k hodnotám. Nemôže obsahovať duplicitné kľúče. Každý kľúč je možné mapovať na najmenej jednu hodnotu.
18) Aké sú vlastnosti Java Hashmap?
Funkcie Java Hashmap sú:
- Hodnoty je možné uložiť na mape vytvorením páru kľúč - hodnota. Hodnotu je možné získať pomocou kľúča odovzdaním správnej metóde.
- Ak na mape neexistuje žiadny prvok, vyvolá 'NoSuchElementException'.
- HashMap ukladá iba odkazy na objekty. Preto je nemožné použiť primitívne dátové typy ako double alebo int. Namiesto toho použite triedu obálky (napríklad Integer alebo Double).
19) Čo je to zásobník?
Zásobník je špeciálna oblasť pamäte počítača, ktorá uchováva dočasné premenné vytvorené funkciou. V zásobníku sú premenné deklarované, ukladané a inicializované počas behu programu.
20) Čo je to prepojený zoznam?
Prepojený zoznam je dátová štruktúra, ktorá dokáže uložiť zbierku položiek. Inými slovami, prepojené zoznamy sa dajú využiť na uloženie niekoľkých objektov rovnakého typu. Každá jednotka alebo prvok v zozname sa označuje ako uzol. Uzol v zozname Prepojené obsahuje svoje údaje a adresu nasledujúceho uzla. Je to ako reťaz. Prepojené zoznamy sa používajú na vytváranie grafov a stromov.
21) Uveďte príklad ArrayList
Príklad ArrayList je:
import java.util.ArrayList;class Test_ArrayList {public static void main(String[] args) {//Creating a generic ArrayListArrayListarlTest = new ArrayList ();//Size of arrayListSystem.out.println("Size of ArrayList at creation: " + arlTest.size());//Lets add some elements to itarlTest.add("D");arlTest.add("U");arlTest.add("K");arlTest.add("E");//Recheck the size after adding elementsSystem.out.println("Size of ArrayList after adding elements: " + arlTest.size());//Display all contents of ArrayListSystem.out.println("List of all elements: " + arlTest);//Remove some elements from the listarlTest.remove("D");System.out.println("See contents after removing one element: " + arlTest);//Remove element by indexarlTest.remove(2);System.out.println("See contents after removing element by index: " + arlTest);//Check size after removing elementsSystem.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) Vysvetlite prepojený zoznam podporovaný programom Java
Java podporuje dva typy prepojených zoznamov:
- Zoznam Singly Linked: Zoznam Singly Linked je typom dátovej štruktúry. V jednotlivo prepojenom zozname každý uzol v zozname ukladá obsah uzla a odkaz alebo smerník na nasledujúci uzol v zozname. Neukladá žiadny odkaz ani smerník na predchádzajúci uzol.
- Dvojnásobne prepojené zoznamy: Dvojnásobne prepojené zoznamy sú špeciálnym typom prepojeného zoznamu, v ktorom je možné prechádzať cez dátové prvky oboma smermi. Toto je umožnené tým, že v každom uzle sú dve prepojenia, jedna sa pripája k ďalšiemu uzlu a druhá, ktorá sa pripája k predchádzajúcemu uzlu.
23) Vysvetlite metódy, ktoré poskytuje rozhranie fronty?
Metódy rozhrania frontu Java sú:
Metóda | Popis |
boolean add (objekt) | Vloží zadaný prvok do frontu. V prípade úspechu sa vráti pravdivý. |
boolovská ponuka (objekt) | Táto metóda sa používa na vloženie prvku do frontu. |
Objekt odstrániť () | Načíta a odstráni hlavu frontu. |
Anketa objektu () | (): Načíta a odstráni hlavu frontu alebo vráti null v prípade, že je prázdna. |
Anketa objektu () | Načíta a odstráni hlavičku frontu alebo vráti null v prípade, že je prázdna. |
Element objektu () | Načíta údaje z frontu, ale neodstráni ich hlavičku. |
Objekt nahliadnuť () | Načíta údaje z frontu, ale neodstráni ich hlavičku, alebo v prípade, že je front prázdny, obnoví hodnotu null. |
24) Uveďte metódy poskytované triedou Stack
Dôležité metódy poskytované triedou Stack sú:
- push (): Zatlačí položku do stohu.
- empty (): Táto metóda zistí, či je zásobník prázdny alebo nie.
- pop (): Táto metóda rámca kolekcie Java odstráni objekt zo zásobníka.
- search (): Táto metóda vyhľadáva položky v zásobníku.
- peek (): Táto metóda Java sleduje objekt zásobníka bez jeho odstránenia.
25) Definujte emptySet () v rámci kolekcií Java
Metóda emptySet (), ktorá vráti prázdnu nezmeniteľnú množinu vždy, keď sa programátori pokúsia odstrániť nulové prvky. Sada, ktorá sa vracia parametrom emptySet (), je serializovateľná. Syntax tejto metódy je:
verejné statické finále
26) Rozlišujte medzi zbierkami a zbierkami
Rozdiel medzi zbierkou a zbierkami je:
Zbierka | Zbierky |
Zbierka predstavuje rozhranie. | Zbierky je trieda. |
Predstavuje skupinu objektov ako jednu entitu. | Definuje rôzne úžitkové metódy pre zbierkové objekty. |
Kolekcia je koreňovým rozhraním rámca Java Collection. | Zbierky sú všeobecnou úžitkovou triedou. |
Toto rozhranie sa používa na odvodenie štruktúr zberných údajov. | Táto trieda obsahuje statické metódy na manipuláciu s dátovou štruktúrou. |
27) Definujete LinkedHashSet v rámci Java Collection?
LinkedHashSet je podtrieda triedy s názvom HashSet a implementuje nastavené rozhranie. Jedná sa o dobre usporiadanú verziu sady HashSet, ktorá zachováva dvojnásobne prepojený zoznam vo všetkých svojich prvkoch.
28) Aký je rozdiel medzi Failfast a Failsafe?
Failfast | Bezpečné |
Počas iterácie neumožňuje úpravu kolekcie. | Umožňuje iteráciu modifikáciu kolekcie. |
Môže to vyvolať ConcurrentModificationException | Nemôže to spôsobiť žiadnu výnimku. |
Na prechádzanie prvkami používa pôvodnú kolekciu. | Na prechádzanie prvkami používa originálnu kópiu zbierky. |
Nie sú potrebné žiadne ďalšie pamäte. | Existuje požiadavka na extra pamäť. |
29) Zobrazenie zbierky zoznamov mapového rozhrania
Zobrazenia kolekcie mapového rozhrania sú: 1) pohľad na sadu kľúčov, 2) pohľad na množinu hodnôt a 3) pohľad na množinu vstupov.
30) Aké sú výhody Collection Framework v Jave?
Výhody Collection Framework v Jave sú:
- Rámec kolekcie Java ponúka vysoko efektívne a efektívne dátové štruktúry, ktoré zvyšujú presnosť a rýchlosť programu.
- Program vyvinutý v rámci kolekcie Java sa ľahko udržuje.
- Vývojár môže kombinovať triedy s inými typmi, čo vedie k zvýšeniu opätovnej použiteľnosti kódu.
- Rámec kolekcie Java umožňuje programátorom upravovať primitívne typy kolekcií tak, ako sa im páči.
31) Aký je dobrý spôsob triedenia objektov Collection v Jave?
Dobrým spôsobom, ako triediť objekty zbierky Java, je použitie rozhraní Comparable a Comparator. Vývojár môže použiť Collections.sort (), prvky sú zoradené na základe zmienky o poradí v porovnávaní ().
Ak vývojár používa kolekcie, triedenie (komparátor), triedi objekty závislé od komparácie () rozhrania komparátora.
32) Vysvetlite vektor v Jave
Vektor je rovnaký ako pole. Má komponenty, ku ktorým je možné pristupovať pomocou hodnoty indexu. Vektory môžu obsahovať starú metódu, ktorá nie je ani súčasťou rámca zhromažďovania.
33) Aký je rozdiel medzi Setom a Mapou?
Nastaviť | Mapa |
Sada patrí do balíka-java.util. | Mapa patrí package- java.util. |
Môže rozšíriť rozhranie zberu. | Nerozširuje rozhranie zberu. |
Nepovoľuje duplicitné hodnoty. | Umožňuje duplicitné hodnoty. |
Sada môže triediť iba jednu nulovú hodnotu. | Mapa môže triediť viac nulových hodnôt. |
34) Definujte triedu slovníka
Trieda slovník je trieda Java, ktorá je schopná ukladať páry kľúč - hodnota.
35) Definujte EnumSet
java.util.EnumSet je implementácia Set, ktorá sa dá použiť s typmi enum. Sada EnumSet so všetkými prvkami musí pochádzať z jedného typu výčtu, ktorý je uvedený explicitne alebo implicitne. Nie je synchronizovaný a tiež nie sú povolené nulové kľúče. EnumSet poskytuje metódy ako EnumSetof (najskôr E, E.
… Zvyšok), doplnok (EnumSet s) a copyOf (kolekcia c).36) Aké sú dva spôsoby odstránenia duplikátov z ArrayList?
Dva spôsoby odstránenia duplikátov z ArrayList sú:
- HashSet: Vývojár môže pomocou HashSet odstrániť duplicitný prvok zo zoznamu ArrayList. Nevýhodou je, že nemôže zachovať poradie vloženia.
- LinkedHashSet: Vývojári môžu tiež udržiavať poradie vkladania pomocou LinkedHashSet namiesto HashSet.
37) Čo je IdentityHashMap?
IdentityHashMap je trieda, ktorá implementuje rozhranie Serializable, Clonable, Map a rozširuje triedu AbstractMap. Je určený pre prípad, keď existuje potreba sémantiky referenčnej rovnosti.
38) Čo je WeakHashMap?
WeakHashMap je implementácia Java Map. Slúži na ukladanie slabých odkazov na jeho kľúče. Triedenie pomocou tejto mapy umožňuje, aby sa pár kľúč - hodnota zhromažďoval ako odpad. Jeho kľúč nie je uvedený mimo WeakHashMap.
39) Aké sú metódy na zaistenie bezpečnosti vlákien zberu?
Spôsoby zaistenia bezpečnosti zberného vlákna sú:
- Collections.synchronizedList (zoznam);
- Collections.synchronizedMap (mapa);
- Collections.synchronizedSet (sada);
40) Vysvetlite UnsupportedOperationException
UnsupportedOperationException je výnimka, ktorá sa vyvolá na metódy, ktoré nie sú podporované skutočným typom kolekcie.
Napríklad vývojár vytvára zoznam iba na čítanie pomocou súboru „Collections.unmodifiableList (zoznam)“ a volaním metódy call (), add () alebo remove (). Malo by to jednoznačne hodiť UnsupportedOperationException.
41) Pomenujte triedy zbierok, ktoré poskytujú náhodný prvok prístup k jeho prvkom
Triedy zbierok, ktoré poskytujú náhodným prvkom prístup k ich prvkom, sú: 1) ArrayList, 2) HashMap, 3) TreeMap a 4) Hashtable.
42) Vysvetlite rozdiel medzi frontami a deque.
Fronta | Deque |
Volá sa front s jedným koncom | Nazýva sa to obojstranný front |
Prvky v poradí sú pridané alebo odstránené z jedného konca | Prvky vo fronte sa pridávajú z jedného konca, dajú sa pridať a odstrániť z obidvoch koncov |
Je menej univerzálny. | Je to všestrannejšie. |
43) Uveďte implementačné rozhranie Zoznam a Nastaviť
Rozhranie triedy implementujúce zoznam: 1) ArrayList, 2) Vector a 3) LinkedList.
Rozhranie sady implementujúce triedu: 1) HashSet a 2) TreeSet.
44) Vysvetlite návrhový vzor nasledovaný Iterátorom
Iterátor sleduje detail návrhového vzoru iterátora. Poskytuje vývojárom navigáciu v zbierkach objektov pomocou spoločného rozhrania bez znalosti jeho implementácie.
45) Aký je pohľad () rozhrania frontu?
Peek () je metóda rozhrania frontu. Načíta všetky prvky, ale neodstráni hlavičku frontu. V prípade, že je front prázdny, vráti táto metóda hodnotu null.
46) Čo je CopyOnWriteArrayList?
CopyOnWriteArrayList je variant ArrayList, v ktorom sú operácie ako add a set implementované vytvorením kópie poľa. Je bezpečný pre vlákna a tým pádom nehádže ConcurrentModificationException. Tento zoznam ArrayLists umožňuje všetky prvky vrátane hodnoty null.
47) Rozlišujte medzi ArrayList a LinkedList
Rozdiel medzi ArrayList a LinkedList je:
ArrayList | LinkedList |
Používa dynamické pole. | Používa dvojnásobne prepojený zoznam. |
ArrayList nie je vhodnejší na manipuláciu. | Pre manipuláciu je vhodnejší LinkedList. |
ArrayList poskytuje náhodný prístup. | LinkedList neposkytuje náhodný prístup. |
ArrayList s ukladá iba objekty, a preto to vyžaduje menšiu réžiu pamäte | LinkedList ukladá objekt aj objekt adresy; preto to vyžaduje viac pamäte. |
48) Vysvetlite metódy rozhrania iterátora
Metódy rozhrania iterátora sú:
Metóda | Popis |
public boolean hasNext () | Vráti hodnotu true v iterátore má prvky; v opačnom prípade vráti hodnotu false. |
verejný objekt ďalej () | Táto metóda vráti prvok a posunie ukazovateľ na ďalšiu hodnotu. |
public void remove () | Táto metóda Java dokáže odstrániť posledné prvky vrátené iterátorom. Public void remove () je menej používaný. |
49) Aké sú metódy triedy HashSet?
Metódy triedy HashSet sú:
Metódy | Popis |
boolean add (Objekt o) | Táto metóda pridá prvok zmienky do tejto množiny, ak ešte nie je prítomný. |
boolean obsahuje (Objekt o): | Ak množina obsahuje zadaný prvok, vráti hodnotu true. |
void clear (): | Táto metóda odstráni nastavené prvky. |
boolean isEmpty (): | V prípade, že množina neobsahuje žiadne prvky, vráti hodnotu true. |
boolean remove (Objekt o): | Odstráni zadaný prvok zo sady. |
klon objektu (): | Táto metóda vracia kópiu inštancie HashSet: samotné prvky nie sú klonované. |
iterátor iterátor () | Vráti iterátor nad prvkami v tejto množine. |
int veľkosť (): | Vráti počet prvkov dostupných v množine. |
50) Aké sú metódy triedy Java TreeSet?
Metódy triedy Java TreeSet sú:
Metódy | Popisy |
boolean addAll (kolekcia c) | Pridajte do tejto sady všetky prvky v zadanej kolekcii. |
boolean obsahuje (Objekt o) | Vráti hodnotu true, ak množina obsahuje prvok zmienky. |
boolean isEmpty () | Táto metóda Java vráti hodnotu true, ak táto sada neobsahuje žiadne prvky. |
boolean remove (Objekt o) | Odstráňte zadaný prvok zo súpravy. |
void add (Objekt o) | Pridá zadaný prvok do množiny. |
prázdne miesto jasné () | Táto metóda Java odstráni všetky prvky zo sady. |
51) Vysvetlite prepojenú sadu HashSet
Trieda Java LinkedHashSet je implementáciou prepojeného zoznamu a tabuľky hash rozhrania Set. Obsahuje jedinečné prvky rovnaké ako HashSet. Prepojená sada HashSet v jazyku Java tiež poskytuje voliteľné operácie s množinami, ktoré môžu udržiavať poradie vkladania.
52) Aké sú dôležité metódy použité v prepojenom zozname?
Dôležitými metódami použitými v prepojenom zozname sú:
Metóda | Popis |
boolean add (Objekt o) | Používa sa na pripojenie zadaného prvku na koniec vektora. |
boolean obsahuje (Objekt o) | Je to metóda, ktorá vráti hodnotu true, ak tento zoznam obsahuje zadaný prvok. |
void add (int index, Object element) | Vloží prvok na zadaný prvok vo vektore. |
void addFirst (Objekt o) | Slúži na vloženie daného prvku na začiatok. |
void addLast (Objekt o) | Slúži na pripojenie daného prvku na koniec. |
Vnútorná veľkosť () | Túto metódu je možné použiť na vrátenie celkového počtu prvkov v zozname. |
boolean remove (Objekt o) | Môže odstrániť prvý výskyt určeného prvku zo zoznamu. |
int indexOf (Object element) | Táto metóda Java vracia index s prvým výskytom prvku zmienky v tomto zozname alebo s hodnotou -1. |
int lastIndexOf (prvok objektu) | Je to metóda Java, ktorá vracia index s posledným výskytom zadaného prvku v tomto zozname alebo s hodnotou -1. |
53) Zoznam rôznych tried dostupných v množinách
V sadách sú k dispozícii rôzne triedy: HashSet, TreeSetand a LinkedHashSet.
54) Zoznam metód dostupných v rozhraní Java Queue
- boolean add (objekt)
- boolovská ponuka (objekt)
- objekt remove ()
- objektová anketa ()
- element objektu ()
- objekt nahliadnuť ()
55) Rozlišujte medzi Zoznamom a Nastavením.
Zoznam | Nastaviť |
Objednaná zbierka prvkov | Neusporiadaná zbierka prvkov |
Zachová sa poradie vloženia | Nezachováva poradie vloženia |
Duplicitné hodnoty sú povolené | Duplicitné hodnoty nie sú povolené |
Môže byť uložený ľubovoľný počet nulových hodnôt | Môže byť uložená iba jedna nulová hodnota |
ListIterator možno použiť na prechádzanie zoznamu v ľubovoľnom smere | ListIterator nemožno použiť na prechádzanie Setom |
Obsahuje starú triedu zvanú vektor | Neobsahuje žiadnu starú triedu |
56) Vysvetlite pre každú slučku na príklade
Pre každú slučku je iná forma slučky for používaná na prechádzanie po poli. Značne to redukuje kód a v slučke sa nepoužíva index alebo skôr počítadlo.
Príklad pre každú slučku:
class UsingForEach {public static void main(String[] args) {String[] arrData = {"Alpha", "Beta", "Gamma", "Delta", "Sigma"};//The conventional approach of using the for loopSystem.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 loopfor (String strTemp : arrData){System.out.println(strTemp);}}}
57) Vysvetlite operátora diamantov
Operátor Diamond umožňuje kompilátoru zhromažďovať argumenty typu všeobecnej triedy. V prostredí Java SE môže vývojár nahradiť parametrizovaný konštruktor prázdnymi súbormi parametrov (<>), ktoré sa nazývajú diamantový operátor.
58) Vysvetlite rozhranie náhodného prístupu
Rozhranie RandomAccess používajú implementácie Zoznamu na indikáciu, že podporujú rýchlo.
59) Pomenujte triedy zbierok, ktoré implementujú rozhranie s náhodným prístupom
Balík Java.util obsahuje triedy, ktoré môžu implementovať rozhranie s náhodným prístupom, sú: CopyOnWriteArrayList, Stack, ArrayList a Vector.
60) Ako sa pripojiť k viacerým zoznamom polí?
Zoznam poskytuje metódu addall () v ArrayList v Jave.
Zvážte napríklad dva zoznamy 1) areaList a 2) secondAreaList. Vývojár sa k nim môže pripojiť pomocou addall (), ako napríklad:
areaList.addAll (secondAreaList);
61) Vysvetlite deque rozhranie
Java.util.Deque je Java, rozhranie, ktoré rozširuje rozhranie frontu. Poskytuje podporu pre vkladanie a vypúšťanie prvkov na obidvoch koncoch. Tento front sa nazýva aj obojstranný front.
62) Vysvetlite prepojenú mapu
LinkedHashMap je implementácia rozhrania Map. Môže tiež rozšíriť triedu HashMap. Preto, podobne ako HashMap, LinkedHashMap umožňuje vývojárom Java povoliť jeden nulový kľúč a viac ako jednu nulovú hodnotu.
63) Vysvetlite metódy odstránenia prvkov z ArrayList
Metódy na odstránenie prvkov z ArrayList sú:
Metóda | Popis |
jasný() | Táto metóda odstráni prvky z ArrayList. |
remove (int index) | Táto metóda ArrayList môže odstrániť prvok na konkrétnej pozícii. |
odstrániť (objekt o) | Môže odstrániť prvý výskyt spomenutého prvku z ArrayList. |
odobrať všetky() | Môže odstrániť zoznam prvkov, ktoré sú v konkrétnej kolekcii. |
removeIf (Predikátny filter super E>) | Táto metóda odstráni prvky, ktoré vyhovujú zmienke o predikáte. |
64) Vysvetlite mapu. záznam V mape
Map.entry je rozhranie Java súboru java.util. Má vnorené rozhranie v Mape. Toto rozhranie musí byť kvalifikované názvom triedy alebo rozhrania, ktorého je členom. Preto je kvalifikovaný ako Mapa. Vstup. Predstavuje pár kľúčov a hodnôt, ktorý môže tvoriť prvok mapy.
Táto metóda vráti pohľad na kolekciu. Zvážte napríklad cityMap ako mapu. Vývojár môže použiť položku entrySet () na získanie nastaveného zobrazenia mapy s prvkom Map.Entry. Programátor môže tiež použiť getKey () a getValue () z Map.Entry na získanie dvojice kľúčov a hodnôt mapy.
65) Ktorá metóda sa používa na zoradenie poľa vo vzostupnom poradí?
Na triedenie poľa vo vzostupnom poradí sa používa metóda rámca kolekcie Java, Collection.sort ().
66) Ako merať výkonnosť ArrayList?
Výkonnosť ArrayList možno merať pomocou:
- Pridanie prvku: Vývojár môže pridať prvok na koniec ArrayList pomocou metódy add (E e). Je to O (1). V najhoršom scenári by to mohlo ísť do O (n). To sa môže stať, ak vývojár pridá viac prvkov, ako je kapacita poľa.
- Načítanie prvku : - Vývojár má prístup k indexu poľa pomocou funkcie get (int index). Výkon, v tomto prípade, je možné merať pomocou ArrayList get () je O (1).
- Odstránenie prvku: V prípade, že vývojári odstraňujú prvok pomocou príkazu remove (int index), potom je možné výkonnosť ArrayList vypočítať pomocou operácie odstránenia (int index) pomocou metódy O (n - index).
67) Vysvetlite triedu LinkedList
Trieda LinkedList v Jave implementuje Deque a List pomocou dvojnásobne prepojeného zoznamu. V dvojnásobne prepojenom zozname, ktorý poskytuje jeho štruktúru, je uzol súkromnej triedy. Má tiež premennú položky na uchovávanie hodnoty a odkazu na triedu Node. To možno použiť na pripojenie nasledujúceho a predchádzajúceho uzla.
68) Uveďte príklad Hashmap
Príkladom Hashmap je:
import java.util.HashMap;import java.util.Map;public class Sample_TestMaps{public static void main(String[] args){MapobjMap = new HashMap ();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) Ako iterovať mapu?
Vývojár nemôže mapu priamo iterovať, ale toto rozhranie má dve metódy, ktoré poskytujú zobrazenú množinu máp. Ide o tieto metódy:
- Sada
> entrySet (): Je to metóda, ktorá vráti množinu, ktorá má v mape uvedené položky. Tieto záznamy sú všeobecne predmetom námietok, ktoré majú typ Mapa. Vstup. - Set
keySet (): Táto metóda Java vracia množinu, ktorá má kľúč mapy.
70) Vysvetlite Treemap v Jave
TreeMap je trieda, ktorá implementuje mapové rozhranie LinkedHashMap a HashMap. Môže tiež implementovať rozhranie NavigableMap a rozširovať triedu AbstractMap.
71) Aký je rozdiel medzi Hashmap a Hashtable?
Hashmap | Hashtable |
Nie je synchronizovaný. | Je synchronizovaný. |
HashMap umožňuje jeden kľúč ako nulovú hodnotu. | HashTable nepovoľuje nulové hodnoty. |
Iterátor slúži na prechádzanie HashMap. | Na prechádzanie HashTable sa používa buď Iterator, alebo Enumerator. |
Môže byť použitý pre HashTable aj HashMap a je rýchly proti zlyhaniu. | Môže byť použitý s HashTable a je bezpečný proti zlyhaniu. |
HashMap pracuje rýchlejšie ako HashTable. | Hashtable nie je v porovnaní s HashMap oveľa rýchlejší. |
72) Vysvetlite interné fungovanie HashSet v Jave
HashSet v Jave interne používa HashMap na ukladanie prvkov. Môže tiež ukladať jedinečné hodnoty bez duplicitných hodnôt.
V prostredí Java môže vývojár HashSet mať metódu add (E e), ktorá ako parameter vyžaduje pridanie iba prvku. Neakceptuje pár kľúčov a hodnôt.
73) Vysvetlite notáciu Big-O na príklade
Zápis Big-O zobrazuje výkonnosť algoritmu ako počet prvkov v ArrayList. Vývojár môže na výber implementácie kolekcie použiť zápis Big-O. Je to založené na výkone, čase a pamäti.
Napríklad ArrayList get (index i) je metóda na vykonávanie operácie v konštantnom čase. Nezávisí to od celkového počtu prvkov dostupných v zozname. Preto je výkon v notácii Big-O O (1).
74) Vysvetlite osvedčené postupy v Java Collection Framework
Najlepšie postupy v Java Collection Framework sú:
- Výber správneho typu zberu závisí od potreby.
- Vyhnite sa opätovnému premiešaniu alebo zmene veľkosti odhadom celkového počtu prvkov, ktoré sa majú uložiť v triedach zberu.
- Napíšte program Java v zmysle rozhraní. To pomôže vývojárovi v budúcnosti bez námahy zmeniť implementáciu.
- Vývojár môže použiť Generics na zabezpečenie typu.
- Používajte nemenné triedy dané vývojovou súpravou Java. Zabráňte implementácii equals () a hashCode () pre vlastné triedy.
- Programátor by mal používať triedu obslužnej rutiny Kolekcie pre algoritmy alebo na získanie synchronizovaných alebo prázdnych kolekcií iba na čítanie. To zvýši opätovnú použiteľnosť kódu s nízkou udržiavateľnosťou.
75) Vysvetlite rôzne typy frontov v Jave
V Jave existujú tri typy front:
- Prioritný front: Je to špeciálny typ frontu, v ktorom sú prvky zoradené podľa prirodzeného poradia alebo vlastného komparátora.
- Kruhový front: Je to typ frontu, v ktorom sa operácie používateľa vykonávajú na základe metódy FIFO. Posledný prvok je spojený s prvou pozíciou, aby vytvoril kruh.
- Poradie s dvoma koncami: Poradie s dvoma koncami je abstraktný dátový typ, ktorý zovšeobecňuje poradie. Prvky v tomto poradí je možné pridať alebo odobrať z hlavy alebo chvosta.
76) Aký je rozdiel medzi zásobníkom a frontou?
Stoh | Fronta |
Princíp práce stohu je LIFO. | Pracovným princípom frontu je FIFO. |
Jeden koniec sa používa na vloženie alebo vymazanie prvkov. | Jeden koniec sa používa na vkladanie a druhý koniec sa používa na vymazanie prvkov. |
Používa jeden ukazovateľ. | Používa dva ukazovatele v jednoduchom rade. |
Nemá žiadny druh variantu. | Má varianty ako prioritný front, kruhový front, dvojnásobne ukončený front. |
Ľahko sa používa. | Nie je ľahké ho používať. |
77) Aký je rozdiel medzi poľom a zásobníkom?
Rozdiel medzi poľom a zásobníkom je:
Pole | Stoh |
Je to súhrn prvkov, ktoré sú identifikované indexom. | Je to operácia zhromažďovania, ktorá slúži ako operácie push a pop. |
Má prvky dátových typov, ktoré sú rovnaké. | Má prvky dátových typov, ktoré sú odlišné. |
Prvky je možné odstrániť alebo pridať do poľa pomocou operácie náhodného prístupu. | Prvky je možné odstrániť alebo pridať do stohu pomocou operácie LIFO. |
78) Definujte iterátor ()
Iterator () je rozhranie, ktoré poskytuje metódy na iteráciu zbierky. Iterator môže nahradiť Enumeráciu v Jave. Umožňuje volajúcemu odstrániť prvky zo zbierky. Metóda poskytuje všeobecný spôsob prechodu pomocou prvkov kolekcie a implementácie návrhového vzoru iterátora.
79) Aké sú rôzne spôsoby opakovania zoznamu?
Programátor Java collection Framework môže iterovať zoznam dvoma spôsobmi: 1) pomocou iterátora a 2) pomocou pre každú slučku.
80) Aké sú výhody stohu?
Výhody zásobníka sú:
- Pomáha vám spravovať údaje metódou Last In First Out (LIFO), čo nie je možné v prípade prepojeného zoznamu a poľa.
- Keď sa volá funkcia, lokálne premenné sa ukladajú do zásobníka a po návrate sa automaticky zničia.
- Zásobník sa používa, keď sa premenná nepoužíva mimo túto funkciu.
- Umožňuje vám ovládať, ako je alokovaná a pridelená pamäť.
- Stack automaticky vyčistí objekt.
- Nie je ľahko poškoditeľný
- Veľkosť premenných nie je možné zmeniť.