80 Java Otázky a odpovědi na rozhovory se sbírkami (2026)
Java Kolekce Otázky a odpovědi na rozhovory pro Freshers
1) V čem je framework Java?
Framework je populární a hotová architektura, která obsahuje sadu tříd a rozhraní.
2) V čem je Collection framework Java?
Rámec kolekce je skupinaping tříd a rozhraní, které se používají k ukládání a správě objektů. Nabízí různé třídy, jako například Vector, ArrayList, HashSet, Stack atd. Java Kolektivní rámec lze také použít pro rozhraní jako Queue, Set, List atd.
3) Třída Explain Collections
java.util.Collections je třída sestávající ze statických metod, které pracují s kolekcemi. Obsahuje polymorfní algoritmy pro práci s kolekcemi, „wrappers“. Tato třída obsahuje metody pro algoritmy, jako je binární třídění, vyhledávání, míchání atd.
4) Co je to hashCode()?
HašišCode() je metoda, která vrací celočíselný hash kód.
5) Rozlišujte mezi ArrayList a Vector v Java sbírkový rámec.
| ArrayList | vektor |
|---|---|
| ArrayList nelze synchronizovat. | Vektor může být synchronizován. |
| Není to starší třída. | Je to starší třída. |
| Může zvětšit svou velikost o 50 % velikosti pole. | Může zvětšit svou velikost zdvojnásobením velikosti pole. |
| ArrayList není bezpečný pro vlákna. | Vector je bezpečný pro vlákna. |
6) V čem je ArrayList Java?
ArrayList je datová struktura, kterou lze roztáhnout tak, aby se do ní vešly další prvky a po odstranění prvků se zmenšila. Je to velmi důležitá datová struktura užitečná při manipulaci s dynamickým chováním prvků.
7) Rozlišujte mezi Iterator a ListIterator
Rozdíl mezi Iteratorem a ListIteratorem je:
| Iterátor | ListIterator |
|---|---|
| Iterátor může procházet prvky pole v dopředném směru. | ListIterator může procházet prvky pole ve směru vzad i vpřed. |
| Lze jej použít ve frontách, seznamech a sadách. | Lze jej použít v seznamu. |
| Může provést pouze operaci odstranění. | Při procházení kolekce může provádět operace přidání, odebrání a nastavení. |
8) Jaký je rozdíl mezi Iterátorem a Enumerací?
Rozdíl mezi Iterátorem a Enumerací
| Iterátor | Výčet |
|---|---|
| Iterátor může procházet jak legacy, tak i non-legacy prvky. | Výčet může procházet pouze staršími prvky. |
| Iterátor je rychlý při selhání. | Výčet není rychlý. |
| Iterátor je ve srovnání s Enumerací velmi pomalý. | Enumerace je ve srovnání s Iteratorem rychlá. |
| Iterátor může provádět operaci odstranění při procházení kolekce. | Výčet může provádět pouze operaci procházení kolekce. |
9) Definujte BlockingQueue
BlockingQueue je rozhraní používané v Java které mohou prodloužit frontu. Poskytuje souběžnost v různých operacích fronty, jako je načítání, vkládání, mazání atd.
Fronta čeká, až se v době načítání jakýchkoli prvků nevyprázdní. BlockingQueue by neměl obsahovat prvky null. Implementace této fronty je bezpečná pro vlákna.
Syntaxe BlockingQueue je:
public interface BlockingQueue<E> extends Queue <E>
10) Vysvětlete metodu override equals().
Ke kontrole podobnosti mezi dvěma objekty se používá metoda rovná se. V případě, že chce programátor zkontrolovat objekt na základě vlastnosti, je třeba ji přepsat.
11) Jaký je rozdíl mezi srovnatelným a komparátorem?
Rozdíl mezi srovnatelným a komparátorem je:
| Srovnatelný | Komparátor |
|---|---|
| Comparable poskytuje metodu CompareTo() k řazení prvků Java. | Komparátor poskytuje metodu Compare() k řazení prvků Java. |
| Srovnatelné rozhraní je přítomno v balíčku java.lang. | Rozhraní komparátoru je přítomno v jazyce Java. util balíček. |
| Logika řazení musí být ve stejné třídě, jejíž objekt budete třídit. | Logika řazení by měla být v samostatné třídě, aby bylo možné zapisovat různé řazení na základě různých atributů objektů. |
| Třída, jejíž objekty chcete třídit, musí implementovat srovnatelné rozhraní. | Třída, jejíž objekty chcete třídit, nemusí implementovat rozhraní komparátoru. |
| Poskytuje jednotlivé sekvence řazení. | Poskytuje několik třídicích sekvencí. |
| Tato metoda dokáže seřadit data podle přirozeného pořadí řazení. | Tato metoda třídí data podle přizpůsobeného pořadí řazení. |
| Ovlivňuje původní třídu. tj. skutečná třída je změněna. | Nemá vliv na původní třídu, tj. skutečná třída se nezmění. |
| Často implementováno v API pomocí kalendáře, tříd Wrapper, data a řetězce. | Je implementován k řazení instancí tříd třetích stran. |
| Všechny třídy wrapper a třída String implementují srovnatelné rozhraní. | Jediné implementované třídy Comparatoru jsou Collator a RuleBasedColator. |
12) Vysvětlete equals() pomocí příkladu
Equals() ověřuje, zda se objekt číslo rovná objektu, který je předán jako argument či nikoli.
Syntaxe metody equals() je:
public boolean equals(Object o)
Tato metoda přebírá dva parametry 1) libovolný objekt, 2) návratovou hodnotu. Vrací hodnotu true, pokud předaný argument není null a jedná se o objekt podobného typu se stejnou číselnou hodnotou.
Pří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) Vyjmenujte výhody generické sbírky
Výhody použití generické kolekce jsou:
- Pokud programátoři používají generickou třídu, nevyžadují typové obsazení.
- Je typově bezpečný a lze jej zkontrolovat v době kompilace.
- Poskytuje stabilitu kódu tím, že detekuje chybu v době kompilace.
14) Vysvětlete metodu převodu ArrayList na Array a Array na ArrayList
Programátoři mohou převést Array na ArrayList pomocí metody asList() třídy Arrays. Je to statická metoda třídy Arrays, která akceptuje objekt List. Syntaxe metody asList() je:
Arrays.asList(item)
Java programátoři mohou převést ArrayList na objekt List pomocí syntaxe:
List_object.toArray(new String[List_object.size()])
15) Uveďte příklad ArrayList
Příklad reverzního ArrayList je:
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) Uveďte příklad řazení pole v sestupném pořadí
Příklad řazení pole v sestupném pořadí 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 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) Vysvětlete základní rozhraní Java rámec sbírek
Java kolekce framework je kořenem hierarchie kolekce. Představuje skupinu objektů jako své prvky. The Java programovací jazyk neposkytuje přímou implementaci takového rozhraní.
- Soubor: Set je kolekce, která nemá žádné duplicitní prvky. Pro ukládání prvků používá hashtable.
- Seznam: Seznam je uspořádaná kolekce, která může obsahovat duplicitní prvky. Umožňuje vývojářům přistupovat ke všem prvkům z jeho doručené pošty. Seznam je jako pole s dynamickou délkou.
- MAPA: Je to objekt, který mapuje klíče na hodnoty. Nemůže obsahovat duplicitní klíče. Každý klíč může být mapován alespoň na jednu hodnotu.
18) Jaké jsou vlastnosti Java Hashmap?
Vlastnosti Java Hashmap jsou:
- Hodnoty lze uložit do mapy vytvořením páru klíč-hodnota. Hodnotu lze získat pomocí klíče předáním správné metodě.
- Pokud v mapě neexistuje žádný prvek, vyvolá to 'NoSuchElementException'.
- HashMap ukládá pouze odkazy na objekty. Proto není možné používat primitivní datové typy jako double nebo int. Použijte obalovou třídu (jako Integer nebo Double) namísto.
19) Co je zásobník?
Zásobník je speciální oblast paměti počítače, která ukládá dočasné proměnné vytvořené funkcí. V zásobníku jsou proměnné deklarovány, ukládány a inicializovány za běhu.
20) Co je propojený seznam?
Propojený seznam je datová struktura, která může ukládat kolekci položek. Jinými slovy, propojené seznamy lze využít k uložení několika objektů stejného typu. Každá jednotka nebo prvek seznamu se označuje jako uzel. Uzel v seznamu Propojený má svá data a adresu dalšího uzlu. Je to jako řetěz. Propojené seznamy se používají k vytváření grafů a stromů.
Java Kolekce Rozhovor Otázky a odpovědi pro zkušené
21) Uveďte příklad ArrayList
Příklad ArrayList je:
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) Vysvětlete propojený seznam podporovaný Java
Dva typy propojených seznamů podporovaných Java jsou:
- Jednotlivě propojený seznam: Jednotlivě propojený seznam je typ datové struktury. V jednoduše propojeném seznamu každý uzel v seznamu ukládá obsah uzlu a odkaz nebo ukazatel na další uzel v seznamu. Neukládá žádný odkaz ani ukazatel na předchozí uzel.
- Dvojitě propojené seznamy: Dvojité propojené seznamy jsou speciálním typem propojených seznamů, kde lze procházení přes datové prvky provádět oběma směry. To je umožněno tím, že v každém uzlu jsou dvě propojení, jedna, která odkazuje na další uzel, a druhá, která se připojuje k předchozímu uzlu.
23) Vysvětlete metody poskytované rozhraním Queue?
Metody Java Rozhraní fronty jsou:
| Metoda | Description |
|---|---|
| booleovské přidání (objekt) | Vloží zadaný prvek do fronty. V případě úspěchu vrátí hodnotu true. |
| booleovská nabídka (objekt) | Tato metoda se používá k vložení prvku do fronty. |
| Object remove() | Načte a odstraní hlavu fronty. |
| Object poll() | (): Načte a odstraní hlavičku fronty nebo vrátí null v případě, že je prázdná. |
| Object poll() | Načte a odstraní hlavičku fronty nebo vrátí null v případě, že je prázdná. |
| Object element() | Načte data z fronty, ale neodstraní její hlavu. |
| Pohled na objekt () | Načte data z fronty, ale neodstraní její hlavu, nebo v případě, že je fronta, fronta je prázdná, načte hodnotu null. |
24) Uveďte metody poskytované třídou Stack
Důležité metody poskytované třídou Stack jsou:
- TAM(): Zatlačte položku do stohu.
- prázdné (): Tato metoda zjistí, zda je zásobník prázdný nebo ne.
- pop (): Toto Java metoda kolekce framework odstraní objekt ze zásobníku.
- Vyhledávání (): Tato metoda prohledává položky v zásobníku.
- kouknout (): Toto Java metoda se dívá na objekt zásobníku, aniž by jej odstranil.
25) Definujte emptySet() v Java rámec sbírek
Metoda emptySet(), která vrací prázdnou neměnnou sadu, kdykoli se programátoři pokusí odstranit prvky null. Sada, kterou vrací emptySet() je serializovatelná. Syntaxe této metody je:
veřejné statické finále Soubor emptySet()
26) Rozlišujte mezi kolekcí a kolekcí
Rozdíl mezi sbírkou a sbírkou je:
| Sbírka | Kolekce |
|---|---|
| Kolekce je rozhraní. | Kolekce je třída. |
| Představuje skupinu objektů jako jednu entitu. | Definuje různé obslužné metody pro sbírkové předměty. |
| Kolekce je kořenovým rozhraním Java Kolektivní rámec. | Kolekce je obecná užitková třída. |
| Toto rozhraní se používá k odvození datových struktur kolekce. | Tato třída obsahuje statické metody pro manipulaci s datovou strukturou. |
27) Definujte LinkedHashSet v Java Kolektivní rámec?
LinkedHashSet je podtřída třídy s názvem HashSet a implementuje rozhraní sady. Je to dobře uspořádaná verze HashSet, která udržuje dvojitě propojený seznam napříč všemi svými prvky.
28) Jaký je rozdíl mezi failfast a failsafe?
| Failfast | Failsafe |
|---|---|
| Neumožňuje úpravu kolekce během iterace. | Umožňuje modifikaci kolekce při iteraci. |
| Může vyvolat ConcurrentModificationException | Nemůže vyvolat žádnou výjimku. |
| K procházení prvků využívá původní kolekci. | K procházení prvků používá originální kopii sbírky. |
| Není potřeba další paměť. | Existuje požadavek na další paměť. |
29) Seznam zobrazení kolekce mapového rozhraní
Zobrazení kolekce rozhraní mapy jsou: 1) zobrazení sady klíčů, 2) zobrazení sady hodnot a 3) zobrazení sady položek.
30) Jaké jsou výhody Collection Framework in Java?
Výhody Collection Framework v Java jsou:
- Java kolekce framework nabízí vysoce efektivní a efektivní datové struktury, které zvyšují přesnost a rychlost programu.
- Program vyvinutý s Java kolekce framework se snadno udržuje.
- Vývojář může kombinovat třídy s jinými typy, což vede ke zvýšení opětovné použitelnosti kódu.
- Jedno Java kolekce umožňuje programátorům upravovat primitivní typy kolekcí tak, jak se jim líbí.
31) Jaký je dobrý způsob třídění objektů Collection? Java?
Dobrý způsob, jak třídit Java kolekce objektů používá rozhraní Comparable a Comparator. Vývojář může použít Collections.sort(), prvky se třídí na základě zmínky o pořadí v CompareTo().
Když vývojář používá Collections, sort (Comparator), seřadí objekty v závislosti na Compare() rozhraní Comparator.
32) Vysvětlete Vector in Java
Vektor je stejný jako pole. Obsahuje komponenty, ke kterým lze přistupovat pomocí hodnoty indexu. Vektory mohou obsahovat starší metodu, která není součástí rámce kolekce.
33) Jaký je rozdíl mezi Set a Map?
| sada | Mapa |
|---|---|
| Sada patří do package-java.util. | Mapa patří package- java.util. |
| Může rozšířit sběrné rozhraní. | Nerozšiřuje sběrné rozhraní. |
| Nepovoluje duplicitní hodnoty. | Umožňuje duplicitní hodnoty. |
| Sada může řadit pouze jednu hodnotu null. | Mapa může řadit více hodnot null. |
34) Definujte třídu slovníku
Třída Slovník je a Java třída, která má schopnost ukládat páry klíč–hodnota.
35) Definujte EnumSet
java.util.EnumSet je implementace sady, kterou lze použít s typy výčtu. EnumSet se všemi prvky musí pocházet z jednoho typu výčtu specifikovaného explicitně nebo implicitně. Není synchronizován a také nejsou povoleny nulové klíče. EnumSet poskytuje metody jako EnumSetof(E first, E… rest), complexOf(EnumSet s) a copyOf(Collection c).
36) Jaké jsou dva způsoby odstranění duplikátů z ArrayList?
Dva způsoby, jak odstranit duplikáty z ArrayList, jsou:
- HashSet: Vývojář může použít HashSet k odstranění duplicitního prvku z ArrayList. Nevýhodou je, že nelze zachovat objednávku vložení.
- LinkedHashSet: Vývojáři mohou také udržovat pořadí vkládání pomocí LinkedHashSet namísto HashSet.
37) Co je IdentityHashMap?
IdentityHashMap je třída, která implementuje serializovatelná, klonovatelná rozhraní, Map a rozšiřuje Abs.tracTřída tMap. Je navržena pro případ, kdy je potřeba sémantika rovnosti referencí.
38) Co je WeakHashMap?
WeakHashMap je implementace Java Mapa. Slouží k ukládání slabých odkazů na jeho klíče. Řazení pomocí této mapy umožňuje, aby byl pár klíč–hodnota shromažďován jako odpad. Jeho klíč není odkazován mimo WeakHashMap.
39) Jaké jsou metody, jak zajistit, aby shromažďování bylo bezpečné pro vlákna?
Způsoby, jak zajistit bezpečnost vlákna kolekce, jsou:
- Collections.synchronizedList(seznam);
- Collections.synchronizedMap(map);
- Collections.synchronizedSet(set);
40) Vysvětlete NepodporovánoOperationException
NepodporovánoOperationException je výjimka, která je vyvolána u metod, které nejsou podporovány skutečným typem kolekce.
Vývojář například vytváří seznam pouze pro čtení pomocí „Collections.unmodifiableList(list)“ a voláním metody call(), add() nebo remove(). Mělo by to jasně hodit UnsupportedOperationException.
41) Pojmenujte třídy kolekce, které umožňují náhodným prvkům přístup ke svým prvkům
Třídy kolekce, které umožňují náhodný přístup prvku k jeho prvkům, jsou: 1) ArrayList, 2) HashMap, 3) TreeMap a 4) Hashtable.
42) Vysvětlete rozdíl mezi Queue a Deque.
| Fronta | Deque |
|---|---|
| Říká se tomu fronta s jedním koncem | Říká se tomu dvojitá fronta |
| Prvky ve frontě se přidávají nebo odebírají z jednoho konce | Prvky ve frontě jsou přidávány z obou konců, lze je přidávat a odebírat z obou konců |
| Je méně univerzální. | Je všestrannější. |
43) Uveďte implementační rozhraní List and Set
Rozhraní seznamu implementující třídu: 1) ArrayList, 2) Vector a 3) LinkedList.
Rozhraní sady implementující třídu: 1) HashSet a 2) TreeSet.
44) Vysvětlete návrhový vzor následovaný Iterátorem
Iterátor sleduje detaily návrhového vzoru iterátoru. Umožňuje vývojářům procházet kolekcemi objektů pomocí společného rozhraní, aniž by znali jeho implementaci.
45) Co je to peek() rozhraní Queue?
Peek () je metoda rozhraní fronty. Načte všechny prvky, ale neodstraní hlavu fronty. V případě, že je fronta prázdná, vrátí tato metoda hodnotu null.
46) Co je CopyOnWriteArrayList?
CopyOnWriteArrayList je varianta ArrayList, ve které jsou operace jako add a set implementovány vytvořením kopie pole. Je to vlákno-safe, a proto nevyhazuje ConcurrentModificationException. Tento ArrayLists povoluje všechny prvky, včetně null.
47) Rozlišujte mezi ArrayList a LinkedList
Rozdíl mezi ArrayList a LinkedList je:
| ArrayList | Spojový seznam |
|---|---|
| Používá dynamické pole. | Používá dvojitě propojený seznam. |
| ArrayList není pro manipulaci vhodnější. | LinkedList je vhodnější pro manipulaci. |
| ArrayList poskytuje náhodný přístup. | LinkedList neposkytuje náhodný přístup. |
| ArrayList ukládá pouze objekty, a proto zabírá méně paměti | LinkedList ukládá objekt i objekt adresy; proto vyžaduje více režie paměti. |
48) Vysvětlete metody rozhraní iterátoru
Metody rozhraní iterátoru jsou:
| Metoda | Description |
|---|---|
| public boolean hasNext() | Vrací true v iterator has elements; jinak vrátí hodnotu false. |
| public Object next() | Tato metoda vrátí prvek a přesune ukazatel na další hodnotu. |
| public void remove() | Toto Java metoda může odstranit poslední prvky vrácené iterátorem. Public void remove() se používá méně. |
49) Jaké jsou metody třídy HashSet?
Metody třídy HashSet jsou:
| Metody | Description |
|---|---|
| booleovské přidání (objekt o) | Tato metoda přidá prvek zmínky do této sady, pokud již není přítomen. |
| boolean obsahuje(Objekt o): | Vrací hodnotu true, pokud sada obsahuje zadaný prvek. |
| void clear(): | Tato metoda odstraňuje prvky sady. |
| boolean isEmpty(): | Vrací hodnotu true v případě, že množina nemá žádné prvky. |
| booleovské odstranění (Objekt o): | Odebere zadaný prvek ze sady. |
| objekt klon(): | Tato metoda vrací kopii instance HashSet: samotné prvky nejsou klonovány. |
| iterátor iterator() | Vrací iterátor nad prvky v této sadě. |
| int size(): | Vrací počet prvků dostupných v sadě. |
50) Jaké jsou metody Java Třída TreeSet?
Metody Java Třída TreeSet jsou:
| Metody | Descriptionty |
|---|---|
| boolean addAll(kolekce c) | Přidejte do této sady všechny prvky v zadané kolekci. |
| boolean obsahuje (Objekt o) | Vrátí hodnotu true, pokud sada obsahuje prvek zmínky. |
| boolean isEmpty() | Toto Java metoda vrátí hodnotu true, pokud tato sada neobsahuje žádné prvky. |
| booleovské odstranění (objekt o) | Odstraňte určený prvek ze sady. |
| void add (Object o) | Přidá zadaný prvek do sady. |
| void clear() | Toto Java metoda odstraní všechny prvky ze sady. |
51) Vysvětlete Linked HashSet
Java Třída LinkedHashSet je implementace propojeného seznamu a tabulky hash rozhraní Set. Obsahuje jedinečné prvky stejné jako HashSet. Propojený HashSet in Java také poskytuje volitelné operace sady, které mohou zachovat pořadí vkládání.
52) Jaké jsou důležité metody používané v propojeném seznamu?
Důležité metody používané v propojeném seznamu jsou:
| Metoda | Description |
|---|---|
| booleovské přidání (objekt o) | Používá se k připojení zadaného prvku na konec vektoru. |
| boolean obsahuje (Objekt o) | Je to metoda, která vrací true, pokud tento seznam obsahuje zadaný prvek. |
| void add (int index, Object element) | Vloží prvek na zadaný prvek ve vektoru. |
| void addFirst (Object o) | Slouží k vložení daného prvku na začátek. |
| void addLast(Object o) | Slouží k připojení daného prvku na konec. |
| Int size() | Tuto metodu lze použít k vrácení celkového počtu prvků v seznamu. |
| booleovské odstranění (objekt o) | Může odstranit první výskyt zadaného prvku z tohoto seznamu. |
| int indexOf(prvek objektu) | Toto Java metoda vrací index s prvním výskytem prvku zmínky v tomto seznamu, neboli -1. |
| int lastIndexOf(prvek objektu) | Je Java metoda, která vrátí index s posledním výskytem zadaného prvku v tomto seznamu, nebo -1. |
53) Vyjmenujte různé třídy dostupné v sadách
Různé třídy dostupné v sadách jsou: HashSet, TreeSetand a LinkedHashSet.
54) Seznam dostupných metod v Java Rozhraní fronty
- booleovské přidání (objekt)
- booleovská nabídka (objekt)
- objekt odstranit ()
- object poll()
- objektový prvek()
- objekt peek()
55) Rozlišujte mezi seznamem a souborem.
| Seznam | sada |
|---|---|
| Uspořádaná sbírka prvků | Neuspořádaná sbírka prvků |
| Zachová objednávku vložení | Nezachová objednávku vložení |
| Duplicitní hodnoty jsou povoleny | Duplicitní hodnoty nejsou povoleny |
| Lze uložit libovolný počet hodnot null | Lze uložit pouze jednu hodnotu null |
| ListIterator lze použít k procházení seznamu libovolným směrem | ListIterator nelze použít k procházení sady |
| Obsahuje starší třídu s názvem vector | Neobsahuje žádnou starší třídu |
Java Kolekce Rozhovor Otázky a odpovědi pro více než 5 let zkušeností
56) Vysvětlete pro každou smyčku příkladem
For-Each Loop je další forma smyčky for používaná k procházení pole. Výrazně redukuje kód a ve smyčce se nepoužívá index nebo spíše čítač.
Příklad pro každou smyčku:
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) Vysvětlete diamantový operátor
Operátor Diamond umožňuje kompilátoru shromažďovat argumenty typu generické třídy. V Java SE, vývojář může nahradit parametrizovaný konstruktor prázdnými sadami parametrů (<>) známými jako diamantový operátor.
58) Vysvětlete rozhraní náhodného přístupu
Rozhraní RandomAccess používají implementace seznamu pro indikaci, že podporují rychlé.
59) Pojmenujte třídy kolekce, které implementují rozhraní náhodného přístupu
JavaBalíček .util má třídy, které mohou implementovat rozhraní s náhodným přístupem, jsou: CopyOnWriteArrayList, Stack, ArrayList a Vector.
60) Jak se připojit k více ArrayListům?
Seznam poskytuje metodu addall() ve více ArrayList Java.
Uvažujme například dva seznamy 1) areaList a 2) secondAreaList. Vývojář se k nim může připojit pomocí addall() jako:
areaList.addAll(secondAreaList);
61) Vysvětlete rozhraní deque
Java.util.Deque je Java, rozhraní, které rozšiřuje rozhraní Queue. Poskytuje podporu pro vkládání a mazání prvků na obou koncích. Tato fronta se také nazývá dvojitá fronta.
62) Vysvětlete Linkedhashmap
LinkedHashMap je implementace rozhraní Map. Může také rozšířit třídu HashMap. Proto, stejně jako HashMap, umožňuje LinkedHashMap Java vývojáři povolit jeden klíč null a více než jednu hodnotu null.
63) Vysvětlete metody pro odstranění prvků z ArrayList
Metody odstranění prvků z ArrayList jsou:
| Metoda | Description |
|---|---|
| Průhledná() | Tato metoda odstraní prvky z ArrayList. |
| odstranit (int index) | Tato metoda ArrayList může odstranit prvek na konkrétní pozici. |
| odstranit (objekt o) | Může odstranit první výskyt prvku zmínky z ArrayList. |
| odebrat všechny() | Může odstranit seznam prvků, které jsou v konkrétní kolekci. |
| removeIf(Predikát filtr) | Tato metoda odstraňuje prvky, které splňují zmínku o predikátu. |
64) Vysvětlete mapu. záznam na mapě
Map.entry je a Java rozhraní java.util. Má vnořené rozhraní v Mapě. Toto rozhraní musí být kvalifikováno názvem třídy nebo rozhraní, jehož je členem. Proto je kvalifikován jako mapa. Vstup. Představuje pár klíče a hodnoty, který může tvořit prvek mapy.
Tato metoda vrací pohled na kolekci. Považujte například cityMap za mapu. Vývojář může použít entrySet() k získání nastaveného zobrazení mapy s prvkem Map.Entry. Programátor může také použít getKey() a getValue() z Map.Entry k získání dvojice klíče a hodnoty mapy.
65) Která metoda se používá k řazení pole ve vzestupném pořadí?
Java metoda kolekce framework, Collections.sort() se používá k třídění pole ve vzestupném pořadí.
66) Jak měřit výkon ArrayList?
Výkon ArrayList lze měřit:
- Přidání prvku: Vývojář může přidat prvek na konec ArrayList pomocí metody add(E e). Je to O(1). V nejhorším scénáři by to mohlo přejít na O(n). To se může stát, pokud vývojář přidá více prvků, než je kapacita pole.
- Načítání prvku: Vývojář může přistupovat k indexu pole pomocí get(int index). Výkon lze v tomto případě měřit pomocí ArrayList get() je O(1).
- Odebrání prvku: V případě, že vývojáři odstraňují prvek pomocí remove(int index), pak lze výkon ArrayList vypočítat pomocí operace remove(int index) je metoda O(n – index).
67) Vysvětlete třídu LinkedList
Třída LinkedList v Java implementuje Deque a List pomocí dvojitě propojeného seznamu. Ve dvojitě propojeném seznamu je uzel soukromé třídy, který poskytuje jeho strukturu. Má také proměnnou item pro uchování hodnoty a odkaz na třídu Node. To lze použít pro připojení dalšího a předchozího uzlu.
68) Uveďte příklad Hashmap
Příklad Hashmap je:
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) Jak iterovat mapu?
Vývojář nemůže přímo iterovat mapu, ale toto rozhraní má dvě metody, které poskytují sadu zobrazení mapy. Tyto metody jsou:
- Soubor >entrySet(): Je to metoda, která vrací množinu, která má položky uvedené v mapě. Tyto položky jsou obecně namítány, což má typ Mapa. Vstup.
- Soubor keySet(): Toto Java metoda vrací sadu, která má mapový klíč.
70) Vysvětlete stromovou mapu v Java
TreeMap je třída, která implementuje rozhraní Map LinkedHashMap a HashMap. Může také implementovat rozhraní NavigableMap a rozšiřovat Abs.tracTřída tMap.
71) Jaký je rozdíl mezi Hashmap a Hashtable?
| Hashmap | Hashtable |
|---|---|
| Není synchronizován. | Je synchronizován. |
| HashMap umožňuje jeden klíč jako hodnotu null. | HashTable nepovoluje hodnoty null. |
| Iterátor se používá k procházení HashMap. | Pro procházení HashTable se používá Iterator nebo Enumerator. |
| Lze jej použít pro HashTable, HashMap a je rychlý. | Lze jej použít s HashTable a je bezpečný. |
| HashMap funguje rychleji než HashTable. | Hashtable není o moc rychlejší ve srovnání s HashMap. |
72) Vysvětlete vnitřní fungování HashSet in Java
HashSet in Java interně používá HashMap k ukládání prvků. Může také ukládat jedinečné hodnoty bez duplicitních hodnot.
In Java, vývojář HashSet může mít metodu add(E e), která jako parametr bere pouze prvek, který se má přidat. Nepřijímá pár klíč a hodnota.
73) Vysvětlete notaci Big-O na příkladu
Zápis Big-O zobrazuje výkon algoritmu jako počet prvků v ArrayList. Vývojář může použít Big-O notaci k výběru implementace kolekce. Je založen na výkonu, čase a paměti.
Například ArrayList get(index i) je metoda pro provádění operace s konstantním časem. Nezávisí na celkovém počtu prvků dostupných v seznamu. Proto je výkon v zápisu Big-O O(1).
74) Vysvětlete nejlepší postupy v Java Collection Framework
Nejlepší postupy v Java Collection Framework jsou:
- Výběr správného typu kolekce závisí na potřebě.
- Vyhněte se předělání nebo změně velikosti odhadem celkového počtu prvků, které mají být uloženy ve třídách kolekce.
- Napsat Java program z hlediska rozhraní. To vývojářům pomůže v budoucnu snadno změnit implementaci.
- Vývojář může použít Generics pro typovou bezpečnost.
- Použijte neměnné třídy dané Java Vývojová sada. Vyhněte se implementaci equals() a hash.Code() pro vlastní třídy.
- Programátor by měl používat třídu obslužného programu Collections pro algoritmy nebo pro získání pouze pro čtení, synchronizovaných nebo prázdných kolekcí. To zlepší znovupoužitelnost kódu s nízkou udržovatelností.
75) Vysvětlete různé typy front v Java
Existují tři typy front Java:
- Prioritní fronta: Jedná se o speciální typ fronty, kde jsou prvky seřazeny podle jejich přirozeného řazení nebo vlastního komparátoru.
- Kruhová fronta: Jedná se o typ Queue, ve kterém jsou uživatelské operace prováděny na základě metody FIFO. Poslední prvek je připojen k první pozici, aby se vytvořil kruh.
- Double-ukončená fronta: Dvoustranná fronta je abstracDatový typ t, který zobecňuje frontu. Prvky v této frontě lze přidávat nebo odebírat buď z jejího začátku, nebo z konce.
76) Jaký je rozdíl mezi zásobníkem a frontou?
| Stoh | Fronta |
|---|---|
| Princip činnosti zásobníku je LIFO. | Pracovní princip fronty je FIFO. |
| Jeden konec se používá k provádění vkládání nebo mazání prvků. | Jeden konec se používá k provádění vkládání a druhý konec se používá k mazání prvků. |
| Používá jeden ukazatel. | Používá dva ukazatele v jednoduché frontě. |
| Nemá žádnou variantu. | Má varianty jako prioritní fronta, kruhová fronta, fronta s dvojitým koncem. |
| Je snadno použitelný. | Není snadné používat. |
77) Jaký je rozdíl mezi polem a zásobníkem?
Rozdíl mezi polem a zásobníkem je:
| Řada | Stoh |
|---|---|
| Je to kolekce prvků, které jsou identifikovány indexem. | Je to shromažďovací operace, která slouží jako operace push a pop. |
| Má prvky datových typů, které jsou stejné. | Obsahuje prvky datových typů, které se liší. |
| Prvky lze odebrat nebo přidat do pole pomocí operace náhodného přístupu. | Prvky lze odebírat nebo přidávat do stohu pomocí operace LIFO. |
78) Definovat Iterator()
Iterator() je rozhraní, které poskytuje metody pro iteraci kolekce. Iterátor může nahradit výčet Java. Umožňuje volajícímu odstranit prvky z kolekce. Metoda poskytuje obecný způsob procházení pomocí prvků kolekce a implementace návrhového vzoru iterátoru.
79) Jaké jsou různé způsoby iterace seznamu?
Java Kolekce Framework programátor může iterovat seznam dvěma způsoby: 1) pomocí iterátoru a 2) používat jej pro každý smyčka.
80) Jaké jsou výhody zásobníku?
Výhody zásobníku jsou:
- Pomáhá vám spravovat data metodou LIFO (Last In First Out), což není možné s propojeným seznamem a polem.
- Když je funkce volána, lokální proměnné jsou uloženy do zásobníku a ten je po návratu automaticky zničen.
- Zásobník se používá, když se proměnná nepoužívá mimo tuto funkci.
- Umožňuje vám řídit, jak je paměť alokována a uvolněna.
- Stack automaticky vyčistí objekt.
- Nelze snadno poškodit
- Proměnné nelze změnit velikost.
Tyto otázky na pohovoru také pomohou ve vašem životě (ústních)


