Struktura kolekcji Java został wprowadzony w JDK 1.2 który zawiera wszystkie klasy kolekcji i interfejsy. Kolekcja Java to framework zapewniający mechanizm przechowywania kolekcji obiektów i manipulowania nimi. Umożliwia programistom dostęp do gotowych struktur danych i algorytmów do manipulowania danymi.
W tym artykule omówiliśmy 50 najlepszych Pytania do wywiadu dotyczącego kolekcji Java i Odpowiedzi które obejmują wszystko, od podstawowych do zaawansowanych koncepcji kolekcji Java, takich jak kolekcja nawigacji, WeakHashMap, strumienie Lambda itp. Niezależnie od tego, czy jesteś świeższy lub doświadczony programista Java , te pytania do rozmowy kwalifikacyjnej dotyczącej zbiorów Java dadzą Ci całą pewność siebie, której potrzebujesz, aby pomyślnie przejść następną rozmowę kwalifikacyjną w języku Java.

Pytania do wywiadu dotyczącego kolekcji Java
Podzieliliśmy 50 pytań na dwie części: dla doświadczonych i nowicjuszy. Zacznijmy od pytań do Freshersów.
Spis treści
- Pytania do wywiadu dotyczącego kolekcji Java dla nowicjuszy
- Pytania do wywiadu dotyczącego kolekcji Java dla doświadczonych
Pytania do wywiadu dotyczącego kolekcji Java dla nowicjuszy
1. Co to jest kolekcja w Javie?
Termin kolekcja odnosi się do grupy obiektów reprezentowanych jako jedna jednostka. Klasy w hierarchii klas kolekcji Java są podzielone na dwie części źródło interfejsy: Kolekcja (kolekcja java.util.) i Mapa (Java.util.Map) . Terminy, z którymi spotkasz się podczas poznawania kolekcji w Javie:
- Ramy kolekcji: Java Collection Framework definiuje klasy i interfejsy do reprezentowania grup obiektów jako pojedynczej jednostki. Programiści C++ mogą porównać framework Collection z STL (standardowa biblioteka szablonów) i Container Framework z Collection Framework, jeśli pochodzą z tła C++.
- Interfejs kolekcji: Interfejs klasy określa, co klasa powinna zrobić, a nie jak. Innymi słowy, jest to plan zajęć. Ten interfejs udostępnia najpopularniejsze metody dla wszystkich obiektów kolekcji będących częścią struktury kolekcji. Alternatywnie reprezentuje pojedynczy obiekt jako całość.
- Klasa kolekcji: Członek Collection Framework, jest częścią pakietu java.util. Obiekt kolekcji ma w tej klasie wiele metod użytkowych.
2. Czym jest framework w Javie?
Frameworki to zestawy zajęcia I interfejsy które zapewniają gotową architekturę. Nie jest konieczne definiowanie frameworka, aby wdrożyć nowe funkcje lub klasy. W rezultacie optymalny projekt obiektowy obejmuje framework zawierający zbiór klas, które wykonują podobne zadania. Framework może być używany na różne sposoby, na przykład poprzez wywoływanie jego metod, rozszerzanie go i dostarczanie wywołań zwrotnych, słuchaczy i innych implementacji. Niektóre z popularnych frameworków w Javie to:
- Wiosna
- Hibernować
- Rozpórki
- Zestaw narzędzi internetowych Google (GWT)
- Twarze serwerów Java (JSF)
3. Jaka jest różnica między tablicą a kolekcją w Javie?
Tablice to zbiór zmiennych o podobnym typie i wspólnej nazwie w Javie. Istnieją pewne różnice między tablicami w Javie i C/C++. Z drugiej strony kolekcje to grupy pojedynczych obiektów, które tworzą jedną całość znaną jako zbiór obiektów.
| Tablice | Kolekcja |
|---|---|
| Tablice mają stały rozmiar, więc po utworzeniu tablicy nie możemy jej zwiększać ani zmniejszać w zależności od naszych wymagań. | Kolekcja ma charakter uprawny i jest oparta na naszych wymaganiach. Możemy zwiększyć lub zmniejszyć rozmiar. |
| Jeśli chodzi o pamięć, nie zaleca się używania tablic. | Jeśli chodzi o pamięć, zaleca się korzystanie z kolekcji. |
| Ze względu na wydajność zaleca się stosowanie Arrays. | Ze względu na wydajność nie zaleca się używania kolekcji. |
| Tablice mogą zawierać tylko elementy jednorodnych typów danych. | Kolekcja może zawierać zarówno elementy jednorodne, jak i niejednorodne. |
Więcej informacji znajdziesz w artykule – Różnica między tablicami i kolekcjami w Javie
4. Jakie są różne interfejsy używane w Java Collections Framework?
Kolekcja nazywana jest korzeniem hierarchii kolekcji. Kolekcje reprezentują grupy obiektów zwane elementami. Platforma Java nie zapewnia bezpośredniej implementacji tego interfejsu, ale interfejs Collection jest implementowany przez klasy List i Set.
- Interfejs kolekcji
- Interfejs listy
- Ustaw interfejs
- Interfejs kolejki
- Usuń z kolejki interfejs
- Interfejs mapy
5. Wyjaśnij hierarchię frameworku Collection w Javie.
Wszystkie klasy i interfejsy wymagane przez framework kolekcji znajdują się w pakiecie narzędziowym (java. util). Struktury kolekcji mają interfejs zwany interfejsem iterowalnym, który umożliwia iteratorowi iterację po wszystkich kolekcjach. Oprócz tego interfejsu główny interfejs kolekcji działa jako katalog główny struktury kolekcji. Wszystkie kolekcje rozszerzają ten interfejs kolekcji, rozszerzając w ten sposób właściwości iteratora i metody tego interfejsu. Poniższy rysunek ilustruje hierarchię struktury kolekcji.
Hierarchia kolekcji Java
6. Jakie są zalety Ram kolekcji?
Zalety platformy zbierania: Ponieważ brak struktury gromadzenia danych spowodował powyższy zestaw wad, poniżej przedstawiono zalety struktury gromadzenia danych.
- Spójne API: Interfejs API ma podstawowy zestaw interfejsów, takich jak Kolekcja , Ustawić , Lista , Lub Mapa , wszystkie klasy (ArrayList, LinkedList, Vector itp.), które implementują te interfejsy, mają Niektóre wspólny zestaw metod.
- Zmniejsza wysiłek programistyczny: Programista nie musi się martwić o projekt Kolekcji, ale może skupić się na jej najlepszym wykorzystaniu w swoim programie. Zatem podstawowa koncepcja programowania obiektowego (tj. abstrakcji) została pomyślnie wdrożona.
- Zwiększa szybkość i jakość programu: Zwiększa wydajność poprzez zapewnienie wysokowydajnych implementacji przydatnych struktur danych i algorytmów, ponieważ w tym przypadku programista nie musi myśleć o najlepszej implementacji określonej struktury danych. Może po prostu użyć najlepszej implementacji, aby drastycznie zwiększyć wydajność swojego algorytmu/programu.
7. Co to jest ArrayList w Javie?
ArrayList jest częścią struktury kolekcji Java i jest klasą pakietu java.util. Zapewnia nam dynamiczne tablice w Javie. Główne zalety ArrayList są takie, że jeśli zadeklarujemy tablicę, trzeba wspomnieć o rozmiarze, ale w ArrayList nie ma potrzeby wspominania o rozmiarze ArrayList, jeśli chcesz wspomnieć o rozmiarze, możesz to zrobić.

Obraz listy tablic
Więcej informacji znajdziesz w artykule – Lista tablic w Javie
8. Jaka jest różnica pomiędzy Kolekcją a Kolekcjami?
| Kolekcja | Kolekcje |
|---|---|
| To jest interfejs. | Jest to klasa użytkowa. |
| Służy do reprezentowania grupy pojedynczych obiektów jako pojedynczej jednostki. | Definiuje kilka metod narzędziowych używanych do operowania na kolekcji. |
| Kolekcja to interfejs zawierający metodę statyczną od wersji Java8. Interfejs może również zawierać metody abstrakcyjne i domyślne. | Zawiera tylko metody statyczne. |
Więcej informacji znajdziesz w artykule – Kolekcja kontra kolekcje w Javie z przykładem
9. Różnica pomiędzy ArrayList i LinkedList w środowisku kolekcji Java?

ArrayList i LinkedList
| Lista tablic | Połączona lista |
|---|---|
| Ta klasa używa tablicy dynamicznej do przechowywania znajdujących się w niej elementów. Wraz z wprowadzeniem typów ogólnych ta klasa obsługuje przechowywanie wszystkich typów obiektów. | Ta klasa używa podwójnie połączonej listy do przechowywania znajdujących się w niej elementów. Podobnie jak ArrayList, ta klasa obsługuje również przechowywanie wszystkich typów obiektów. |
| Manipulowanie ArrayList zajmuje więcej czasu ze względu na wewnętrzną implementację. Ilekroć usuwamy element, wewnętrznie tablica jest przeglądana, a bity pamięci są przesuwane. | Manipulowanie LinkedList zajmuje mniej czasu w porównaniu z ArrayList, ponieważ w przypadku listy podwójnie połączonej nie ma koncepcji przesuwania bitów pamięci. Lista jest przeglądana, a link referencyjny ulega zmianie. |
| Ta klasa implementuje interfejs List. Dlatego działa to jak lista. | Ta klasa implementuje zarówno interfejs List, jak i interfejs Deque. Dlatego może działać jako lista i deque. |
| Klasa ta działa lepiej, gdy aplikacja wymaga przechowywania danych i uzyskiwania do nich dostępu. | Klasa ta działa lepiej, gdy aplikacja wymaga manipulacji przechowywanymi danymi. |
Więcej informacji znajdziesz w artykule – ArrayList vs LinkedList w Javie
10. Co to jest iterator?
Framework kolekcji Java używa iteratorów do pobierania elementów jeden po drugim. Ten iterator jest uniwersalny, ponieważ można go używać z dowolnym typem obiektu Collection. Za pomocą Iteratora możemy wykonywać zarówno operacje odczytu, jak i usuwania. Jest to ulepszona wersja Enumeration z dodatkiem usuwających elementów.
Podczas wyliczania elementów we wszystkich interfejsach zaimplementowanych w ramach Collection, takich jak Ustawić , Lista , Kolejka , O czym i wszystkich zaimplementowanych klas Map, należy użyć Iteratora. Jedynym kursorem dostępnym dla całej struktury kolekcji jest iterator. Używając metody iterator() w interfejsie Collection, możesz utworzyć obiekt iteratora.
Składnia:
Iterator itr = c. iterator ();>
Notatka: Tutaj c jest dowolnym obiektem kolekcji. itr jest typu Interfejs Iteratora i odnosi się do c.
Więcej informacji znajdziesz w artykule – Iteratory w Javie
11. Jaka jest różnica między iteratorem a wyliczeniem?
Główna różnica między iteratorem a wyliczeniem polega na tym, że iteratory mają metodę usuwania(), podczas gdy wyliczenia nie. Zatem za pomocą Iteratora możemy manipulować obiektami, dodając je i usuwając z kolekcji. Ponieważ wyliczenie może jedynie przeglądać obiekty i je pobierać, zachowuje się jak interfejs tylko do odczytu.
Więcej informacji znajdziesz w artykule – Różnica między iteratorem a wyliczeniem
12. Jaka jest różnica pomiędzy Listą a Setem w Javie
Główna różnica między listą a zestawem polega na tym, że lista może zawierać zduplikowane elementy, podczas gdy zestaw zawiera tylko unikalne elementy. Lista ma charakter uporządkowany i zachowuje kolejność obiektów, do których są dodawane. Zestaw jest nieuporządkowany.
| Lista | Ustawić |
|---|---|
| Lista jest sekwencją indeksowaną. | Zestaw jest sekwencją nieindeksowaną. |
| Lista pozwala na powielanie elementów | Zestaw nie pozwala na powielanie elementów. |
| Można uzyskać dostęp do elementów według ich pozycji. | Dostęp do pozycji elementów jest niedozwolony. |
| Można przechowywać wiele elementów zerowych. | Elementy null można przechowywać tylko raz. |
| Implementacje list to ArrayList, LinkedList, Vector, Stack | Implementacje zestawów to HashSet, LinkedHashSet. |
Więcej informacji znajdziesz w artykule – Różnica między listą a zestawem w Javie
13. Jakie są najlepsze praktyki dotyczące Java Collections Framework?
Poniżej znajdują się niektóre z najlepszych praktyk podczas korzystania z kolekcji Java:
- Programy należy pisać jako interfejsy, a nie implementacje, dzięki czemu będziemy mogli później modyfikować implementację.
- Jeśli to możliwe, używaj Generics, aby zapewnić bezpieczeństwo typów i unikać wyjątków ClassCastException.
- Wybór odpowiedniego rodzaju kolekcji w zależności od potrzeby. Na przykład, jeśli rozmiar jest stały, możemy chcieć użyć Array zamiast ArrayList. Podczas iteracji po mapie powinniśmy używać LinkedHashMap. Zestaw to najlepszy sposób na uniknięcie duplikatów.
- Użyj niezmiennych klas dostarczonych przez JDK jako kluczy w Mapie, aby uniknąć implementacji hashCode() i równości().
- Aby zwiększyć czytelność kodu, zamiast sprawdzać wielkość kolekcji i porównywać ją do zera, powinniśmy użyć funkcji isEmpty().
- Zamiast pisać własną implementację, użyj klasy narzędziowej Collections, aby zamiast tego uzyskać kolekcje tylko do odczytu, zsynchronizowane lub puste. Ułatwia ponowne wykorzystanie kodu, zapewniając jednocześnie większą stabilność.
14. Co to jest kolejka priorytetowa w Javie?
Kolejki priorytetów służą do przetwarzania obiektów zgodnie z ich priorytetem. Kolejki działają według algorytmu First-In-First-Out, ale czasami elementy kolejki muszą zostać przetworzone zgodnie z ich priorytetem i wtedy z pomocą przychodzi PriorityQueue. Kolejki priorytetowe opierają się na stertach priorytetów.
Elementy kolejki priorytetowej uporządkowane są według kolejności naturalnej lub według komparatora podawanego w czasie konstruowania kolejki, w zależności od użytego konstruktora.

Kolejki priorytetowe w Javie
Deklaracja:
public class PriorityQueue extends AbstractQueue implements Serializable where E is the type of elements held in this queue>
Klasa implementuje interfejsy Serializable, Iterable, Collection i Queue.
15. Jaka jest różnica pomiędzy listą, zestawem i mapą w Javie?
| Lista | Ustawić | Mapa |
|---|---|---|
| Interfejs listy umożliwia powielanie elementów | Zestaw nie pozwala na powielanie elementów. | Mapa nie pozwala na powielanie elementów |
| Lista zachowuje kolejność wstawiania. | Zestaw nie utrzymuje żadnej kolejności wstawiania. | Mapa nie zachowuje również żadnej kolejności wstawiania. Java konwertująca liczbę całkowitą na ciąg znaków |
| Możemy dodać dowolną liczbę wartości null. | Ale w zestawie prawie tylko jedna wartość null. | Mapa dopuszcza maksymalnie jeden klucz zerowy i dowolną liczbę wartości zerowych. |
| Klasy implementacji list to Array List i LinkedList. | Klasy implementacji zestawu to HashSet, LinkedHashSet i TreeSet. | Klasy implementacji map to HashMap, HashTable, TreeMap, ConcurrentHashMap i LinkedHashMap. |
Więcej informacji znajdziesz w artykule – Różnica między listą, zestawem i mapą w Javie
16. Jaka jest różnica pomiędzy kolejką a stosem?
| Stos | Kolejka |
|---|---|
| Stosy działają na zasadzie LIFO, co oznacza, że element wstawiony jako ostatni będzie pierwszym elementem, który zostanie wyjęty. | Kolejki działają na zasadzie FIFO, co oznacza, że element wstawiony jako pierwszy będzie pierwszym elementem, który zostanie usunięty. |
| W stosach wstawianie i usuwanie odbywa się tylko od góry. | W kolejkach wstawianie następuje z tyłu listy, a usuwanie z początku listy. |
| Operację wstawiania nazywa się operacją push. | Operację wstawiania nazywa się operacją umieszczania w kolejce. |
| Operację usuwania nazywa się operacją pop. | Operację usuwania nazywa się operacją usuwania z kolejki. |
| Wierzchołek stosu zawsze wskazuje ostatni element listy, który jest jedynym wskaźnikiem umożliwiającym dostęp do listy. | Utrzymywane są dwa wskaźniki dostępu do kolejek. Wskaźnik przedni wskazuje pierwszy wstawiony element, a wskaźnik tylny wskazuje ostatni wstawiony element. |
17. Co to jest BlockingQueue w Javie?
Interfejs BlockingQueue w Javie został dodany w Javie 1.5 wraz z różnymi innymi współbieżnymi klasami Utility, takimi jak ConcurrentHashMap, Counting Semaphore, CopyOnWriteArrrrayList itp. Interfejs BlockingQueue obsługuje kontrolę przepływu (oprócz kolejki), wprowadzając blokowanie, jeśli którakolwiek z kolejek BlockingQueue jest pełna lub pusta.
Wątek próbujący umieścić element w pełnej kolejce jest blokowany do czasu, aż jakiś inny wątek zwolni miejsce w kolejce poprzez usunięcie jednego lub większej liczby elementów lub całkowite wyczyszczenie kolejki. Podobnie blokuje wątek próbujący usunąć element z pustej kolejki, dopóki inne wątki nie wstawią elementu. BlockingQueue nie akceptuje wartości null. Jeśli spróbujemy umieścić w kolejce element zerowy, zgłosi wyjątek NullPointerException.
Użycie kolejki blokującej

Blokowanie kolejki w Javie
Hierarchia kolejki blokowania

Hierarchia kolejki blokowania w Javie
Deklaracja:
public interface BlockingQueue extends Queue>
Tutaj, I to typ elementów przechowywanych w kolekcji.
Więcej informacji znajdziesz w artykule – Interfejs BlockingQueue w Javie
18. Co to jest hashCode()?

Obraz demonstrujący kod skrótu Java
Metoda hashCode() zwraca wartość hashcode jako liczbę całkowitą. Jest zdefiniowany w klasie Java Object, która oblicza wartości skrótu danych obiektów wejściowych. Wartość Hashcode jest najczęściej używana w kolekcjach opartych na haszowaniu, takich jak HashMap, HashSet, HashTable….etc. Metodę tę należy przesłonić w każdej klasie, która zastępuje metodę równości().
Składnia:
public int hashCode() // This method returns the hash code value // for the object on which this method is invoked.>
Więcej informacji znajdziesz w artykule – metody równości() i hashCode() w Javie
19. Rozróżnij ArrayList i Vector w Java Collection Framework.
To pytanie jest często zadawane podczas wywiadów zbiorowych; jednak Vector jest zsynchronizowany, podczas gdy ArrayList nie. ArrayList jest szybszy niż Vector. Rozmiar tablicy ArrayList jest zwiększany o 50% w razie potrzeby, podczas gdy pojemność Vector jest podwajana, gdy jest to potrzebne.

Lista tablic vs wektor w Javie
| Lista tablic | Wektor |
|---|---|
| ArrayList nie jest zsynchronizowany | Wektor jest zsynchronizowany. |
| Rozmiar ArrayList jest zwiększany do 50% bieżącego rozmiaru tablicy, jeśli liczba elementów przekracza jej pojemność. | Rozmiar ArrayList jest zwiększany do 100% bieżącego rozmiaru tablicy, jeśli liczba elementów przekracza jej pojemność. |
| ArrayList jest szybki, ponieważ nie jest zsynchronizowany. | Wektor jest wolniejszy, ponieważ jest zsynchronizowany. |
| Do poruszania się po elementach używany jest interfejs iteratora | Do poruszania się po wektorze można użyć interfejsu iteratora lub wyliczenia. |
Więcej informacji znajdziesz w artykule – Wektor vs ArrayList w Javie
20. Rozróżnij Iterator i ListIterator.
| Iterator | ListIterator |
|---|---|
| Może przechodzić przez elementy obecne w Kolekcji tylko w kierunku do przodu. | Potrafi przemieszczać się po elementach znajdujących się w Kolekcji zarówno w przód, jak i w tył. |
| Pomaga w poruszaniu się po mapie, liście i zestawie. | Można przeglądać tylko Listę, a nie pozostałe dwie. |
| Indeksów nie można uzyskać za pomocą Iteratora. | Posiada metody takie jak nextIndex() i poprzedniIndex(), aby uzyskać indeksy elementów w dowolnym momencie podczas przeglądania listy. |
| Nie można modyfikować ani zastępować elementów znajdujących się w Kolekcji | Za pomocą set(E e) możemy modyfikować lub zastępować elementy |
Więcej informacji znajdziesz w artykule – Różnica między iteratorem a ListIteratorem
21. Jaka jest różnica między iteratorem a wyliczeniem?
Iterator: Jest to iterator uniwersalny, ponieważ możemy go zastosować do dowolnego obiektu Collection. Używając Iteratora, możemy wykonywać zarówno operacje odczytu, jak i usunięcia.
Składnia:
// Here 'c' is any Collection object. itr is of // type Iterator interface and refers to 'c' Iterator itr = c.iterator();>
Wyliczenie: Wyliczenie (lub wyliczenie) to typ danych zdefiniowany przez użytkownika. Stosowany jest głównie do przypisywania nazw stałym całkowitym, nazwy sprawiają, że program jest łatwy do odczytania i utrzymania.
Składnia:
// A simple enum example where enum is declared // outside any class (Note enum keyword instead of // class keyword) enum Color { RED, GREEN, BLUE; }> | Iterator | Wyliczenie |
|---|---|
| Iterator jest kursorem uniwersalnym, ponieważ ma zastosowanie do wszystkich klas kolekcji. | Wyliczenie nie jest kursorem uniwersalnym, ponieważ ma zastosowanie tylko do starszych klas. |
| Iterator posiada metodę usuwania(). | Wyliczenie nie ma metody usuwania(). |
| Iterator może dokonywać modyfikacji (np. przy użyciu metody usuwania(), która podczas przechodzenia usuwa element z Kolekcji). | Interfejs wyliczeniowy działa jako interfejs tylko do odczytu, nie można dokonywać żadnych modyfikacji Kolekcji podczas przeglądania elementów Kolekcji. |
| Iterator nie jest przestarzałym interfejsem. Iteratora można używać do przeglądania HashMap, LinkedList, ArrayList, HashSet, TreeMap i TreeSet. | Wyliczenie to starszy interfejs używany do przeglądania obiektów Vector i Hashtable. |
Więcej informacji znajdziesz w artykule – Różnica między iteratorem a wyliczeniem
22. Jakie są cechy Java Hashmap?
HashMap jest podobny do HashTable, ale jest niezsynchronizowany. Pozwala nam to również przechowywać klucze zerowe, ale powinien istnieć tylko jeden obiekt klucza zerowego i może istnieć dowolna liczba wartości zerowych. Klasa ta nie daje żadnej gwarancji co do kolejności mapy. Aby skorzystać z tej klasy i jej metod, należy dokonać importu java.util. HashMapa pakiet lub jego nadklasa.

HashMap w Javie
Składnia:
public class HashMap extends AbstractMap implements Map, Cloneable, Serializable>
Parametry: Przyjmuje dwa parametry, a mianowicie:
- Rodzaj kluczy obsługiwanych przez tę mapę (K)
- Typ mapowanych wartości (V)
Więcej informacji znajdziesz w artykule – HashMap w Javie z przykładami
23. Czym są interfejsy kolekcji?
The Kolekcja interfejs jest członkiem Java Collections Framework. Jest częścią java.util pakiet. Jest to jeden z głównych interfejsów hierarchii kolekcji. Interfejs kolekcji nie jest bezpośrednio implementowany przez żadną klasę. Jest jednak implementowany pośrednio poprzez swoje podtypy lub podinterfejsy, takie jak Lista, Kolejka i Zestaw.
Na przykład, klasa HashSet implementuje interfejs Set, który jest podinterfejsem interfejsu Collection. Jeśli implementacja kolekcji nie implementuje określonej operacji, powinna zdefiniować odpowiednią metodę zgłaszania wyjątku UnsupportedOperationException.
Hierarchia kolekcji:

Interfejs kolekcji w Javie
24. Wyjaśnij interfejs listy.

Interfejs klas w Javie
W Javie interfejs List umożliwia użytkownikowi przechowywanie uporządkowanej kolekcji obiektów. Lista jest interfejsem podrzędnym kolekcji. W kolekcji lista jest uporządkowaną kolekcją obiektów, które mogą mieć zduplikowane wartości. Ponieważ lista zachowuje kolejność wstawiania, umożliwia dostęp pozycyjny i wstawianie, co pozwala również na powielanie wartości.
Składnia:
public interface List extends Collection ;>
Ten interfejs listy jest implementowany przez różne klasy, takie jak ArrayList, Vector, Stack itp. Ponieważ wszystkie podklasy implementują listę, możemy utworzyć instancję obiektu listy za pomocą dowolnej z tych klas.
Przykład:
Lista al = nowa ArrayList ();
Lista ll = nowa lista połączona ();
Lista v = nowy wektor ();Gdzie T jest typem obiektu

Lista tablic w Javie
Klasy implementujące interfejs List są następujące:
- Lista tablic
- Połączona lista
- Wektor
- Stos
25. Napisz program konwertujący podaną tablicę na zbiór za pomocą metody asList().
Aby przekonwertować dane oparte na tablicach na dane oparte na kolekcji, możemy użyć Java.util.Arrays klasa. Ta klasa udostępnia metodę statyczną asList(T… a), która konwertuje tablicę na kolekcję.
Jawa
// 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);> >}> }> |
math.pow Java
>
>Wyjście
Array input: [Kamlesh, Abhay, Abhishek, Shivansh] Converted elements: [Kamlesh, Abhay, Abhishek, Shivansh]>
26. Rozróżnij HashSet od HashMap
| Zestaw skrótów | HashMapa |
|---|---|
| HashSet implementuje interfejs Set | HashMap implementuje interfejs mapy |
| Duplikaty nie są dozwolone | Tak, duplikaty wartości są dozwolone, ale duplikat klucza nie jest dozwolony |
| Wartości fikcyjne są dozwolone w HashSet. | W HashMap nie są dozwolone żadne wartości fikcyjne. |
| Podczas operacji dodawania wymagany jest pojedynczy obiekt | 2 Obiekty są wymagane podczas operacji dodawania |
| Prędkość jest stosunkowo wolniejsza niż HashMap | Szybkość jest stosunkowo większa niż HashSet ze względu na zastosowaną tutaj technikę mieszania. |
| Mają jedną wartość null | Pojedynczy klucz null i dowolna liczba wartości null |
| Do wstawiania używana jest metoda Add(). | Do wstawiania używana jest metoda put(). |
Więcej informacji znajdziesz w artykule – Różnica między HashMap i HashSet
27. Rozróżnij HashSet od HashTable.
| Zestaw skrótów | Tabela Hash |
|---|---|
| HashSet pozwala na elementy NULL | HashTable nie zezwala na elementy NULL. |
| Nie ma gwarancji, że obiekty wstawiane w HashSet zostaną wstawione w tej samej kolejności. Obiekty wstawiane są na podstawie ich kodu skrótu. LinkedHashSet można wykorzystać do utrzymania porządku. | HashTable nie utrzymuje kolejności wstawiania. |
| HashSet nie jest zsynchronizowany, ale można go zsynchronizować zewnętrznie. | HashTable jest zsynchronizowany. |
| Metoda add() służy do wstawiania do HashSet | Metoda put() służy do wstawiania do HashTable |
28. Jaki jest domyślny rozmiar współczynnika obciążenia w kolekcji opartej na haszowaniu?
Wraz ze wzrostem współczynnika obciążenia pojemność wzrasta tak, że złożoność operacyjna HashMap pozostaje O(1), jeśli stosunek bieżącego elementu do początkowej pojemności przekracza próg. Znaczenie złożoności operacyjnej O(1) oznacza, że operacje pobierania i wstawiania zajmują stały czas. Domyślny rozmiar współczynnika obciążenia to 0,75 . Domyślną pojemność oblicza się, mnożąc pojemność początkową przez współczynnik obciążenia.
Więcej informacji znajdziesz w artykule – Współczynnik obciążenia w HashMap w Javie z przykładami
Pytania do wywiadu dotyczącego kolekcji Java dla doświadczonych
29. Jaka jest różnica między porównywalnym a komparatorem w Javie?
Java udostępnia dwa interfejsy do sortowania obiektów przy użyciu elementów danych klasy:
- Porównywalny
- Komparator
| Porównywalny | Komparator |
|---|---|
| Interfejs Comparable zapewnia pojedynczą sekwencję sortowania. | Interfejs komparatora udostępnia wiele sekwencji sortowania. |
| Rzeczywista klasa jest modyfikowana przez porównywalny interfejs | Rzeczywista klasa nie jest modyfikowana przez interfejs komparatora. |
| Metoda CompareTo() służy do sortowania elementów. | Metoda Compare() służy do sortowania elementów. |
| Porównywalny znajduje się w pakiecie java.lang | Komparator znajduje się w pakiecie java.util |
Więcej informacji znajdziesz w artykule – Porównywalne vs Porównywalne w Javie
30. Jaka jest różnica między funkcją „fail-fast” a „failsafe”?
Iteratory w Javie służą do iteracji po obiektach Collection. Iteratory Fail-Fast natychmiast rzucają Wyjątek ConcurrentModificationException Jeśli tam jest modyfikacja strukturalna kolekcji. Modyfikacja strukturalna oznacza dodanie lub usunięcie dowolnego elementu z kolekcji, gdy wątek wykonuje iterację po tej kolekcji. Iterator w klasach ArrayList i HashMap to kilka przykładów niezawodnego iteratora.
| Szybkość awarii | Bezpieczny |
|---|---|
| ConcurrentModificationException jest zgłaszany podczas modyfikowania obiektu w procesie iteracji. | Nie jest zgłaszany żaden wyjątek |
| Fail-Fast potrzebuje mniej pamięci podczas procesu. | Iterator Fail-Safe wymaga więcej pamięci podczas procesu. |
| Obiekt klonujący nie jest tworzony podczas procesu iteracji. | W procesie iteracji tworzony jest obiekt klonujący lub kopia. |
| Fail-Fast nie pozwala na modyfikację podczas procesu iteracji. | Fail-Safe umożliwia modyfikację w trakcie procesu iteracji. |
| Fail-Fast jest szybki, | Fail-Safe jest nieco wolniejszy niż Fail-Safe. |
| Przykłady: ArrayList, Vector, HashMap, HashSet itp. | Przykłady: ConcurrentHashMap, CopyOnWriteArrayList itp. |
Więcej informacji znajdziesz w artykule – Iteratory Fail Fast i Fail Safe w Javie
31. Napisz program wykonujący iterację listy przy użyciu wyrażenia lambda.
Iterację można wykonać za pomocą a wyrażenie lambda.
Składnia:
list_name.forEach(variable->//blok kodu})>
Jawa
// 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); });> >}> }> |
>
>Wyjście
Geeks for Geeks>
Więcej informacji znajdziesz w artykule – Iteruj po liście w Javie
32. Co to jest IdentityHashMap?
IdentityHashMap implementuje interfejs Map przy użyciu Hashtable, porównując klucze (i wartości) przy użyciu równości referencji zamiast równości obiektów. Klasa ta implementuje interfejs Map, ale celowo łamie ogólną umowę Map, która wymaga, aby obiekty były porównywane przy użyciu metody równości(). Ta klasa jest używana, gdy użytkownik pozwala na porównywanie obiektów za pomocą referencji. Należy do pakietu java.util.
Więcej informacji znajdziesz w artykule – Klasa IdentityHashMap w Javie
33. Napisz program w Javie wyświetlający zawartość tablicy HashTable za pomocą wyliczenia.
Klasa hashtable implementuje tablicę mieszającą, która mapuje klucze na wartości. Jako klucz lub wartość można użyć dowolnego obiektu o wartości innej niż null. Aby pomyślnie przechowywać i pobierać obiekty z tablicy mieszającej, obiekty używane jako klucze muszą implementować metody hashCode i metody równości. Poniżej znajduje się program wyświetlający zawartość tablicy HashTable za pomocą wyliczenia:
Jawa
// 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());> >}> >}> }> |
>
>Wyjście
Geeks for Geeks>
34. Napisz program w Javie, aby uzyskać widok kolekcji wartości obecnych w HashMap.
Klasa HashMap w Javie posiada metodę java.util.HashMap.values() służącą do tworzenia kolekcji na podstawie wartości HashMap. Zasadniczo zwraca widok kolekcji wartości HashMap.
Jawa
// 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());> >}> }> |
>
>Wyjście
Initial Mappings are: {0=Welcome, 1=to, 2=Geeks, 3=4, 4=Geeks} The collection is: [Welcome, to, Geeks, 4, Geeks]> Więcej informacji znajdziesz w artykule – Metoda HashMapvalues() w Javie
35. Napisz program łączący dwie listy ArrayList w jedną pojedynczą ArrayList.
Biorąc pod uwagę dwie ArrayLists w Javie, naszym zadaniem jest połączenie tych ArrayLists.
Jawa
// 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);> >}> }> |
>
przykład przycinania alfa beta
>Wyjście
ArrayList 1: [Geeks, For, ForGeeks] ArrayList 2: [GeeksForGeeks, A computer portal] Joined ArrayLists: [Geeks, For, ForGeeks, GeeksForGeeks, A computer portal]>
Więcej informacji znajdziesz w artykule – Dołącz do dwóch ArrayLists w Javie
36. Jak zsynchronizować listę ArrayList w Javie?
Korzystając z metody Collections.synchronizedList() możemy synchronizować nasze kolekcje w Javie. SynchronizedList() zwraca zsynchronizowaną (bezpieczną wątkowo) listę popartą wyborem.
Jawa
// 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());> >}> >}> >}> }> |
>
>Wyjście
Eat Coffee Code Sleep Repeat>
37. Co to jest klasa właściwości w Javie?
Klasa właściwości jest podklasą Hashtable. Klasa właściwości przechowuje listę wartości, których kluczem jest ciąg znaków i których wartość jest również ciągiem znaków. Właściwości mogą definiować inne listy klas właściwości, ale wartością domyślną są właściwości.
Cechy klasy Właściwości:
- Właściwość jest podklasą Hashtable.
- Plik Właściwości służy do przechowywania i pobierania danych typu ciąg dla listy wartości, gdzie kluczem jest ciąg, a wartość jest również ciągiem.
- Jeśli oryginalna lista właściwości nie zawiera określonej właściwości klucza, zamiast tego przeszukana zostanie domyślna lista właściwości.
- Obiekty mogą być współużytkowane przez wiele wątków bez zewnętrznej synchronizacji.
- Klasy właściwości można użyć do pobrania właściwości systemu.
Więcej informacji znajdziesz w artykule – Klasa właściwości w Javie
38. Co się stanie, jeśli użyjesz HashMap w wielowątkowej aplikacji Java?
W środowisku wielowątkowym, jeśli wiele wątków zmienia strukturę mapy, na przykład dodając, usuwając lub modyfikując mapowania, wewnętrzna struktura danych HashMap może zostać uszkodzona i może brakować niektórych łączy, nieprawidłowych wpisów, a sama mapa może stać się całkowicie bezużytecznym. Dlatego nie powinieneś używać HashMap w aplikacji współbieżnej; zamiast tego użyj ConcurrentHashMap lub Hashtable, który jest bezpieczny dla wątków. ConcurrentHashMap zawiera wszystkie metody Hashtable, a także pełną współbieżność pobierania i aktualizacji.
W jaki sposób ThreadSafeConcurrentHashMap stał się bezpieczny dla wątków?
- Klasa java.util.Concurrent.ConcurrentHashMap zapewnia bezpieczeństwo wątków poprzez podzielenie mapy na segmenty, co pozwala na założenie blokady tylko raz na segment, czyli raz na każdy wątek.
- Operacja odczytu w ConcurrentHashMap nie wymaga blokady.
Więcej informacji znajdziesz w artykule – W jaki sposób ConcurrentHashMap zapewnia bezpieczeństwo wątków w Javie?
39. Co się stanie, jeśli dwa różne klucze HashMap zwrócą ten sam hashcode()?
Kiedy dwa różne klucze HashMap zwrócą ten sam kod skrótu, wylądują w tym samym wiadrze; dlatego wystąpią kolizje. W przypadku kolizji, tj. indeks dwóch lub więcej węzłów jest taki sam, węzły są łączone listą łączy, tj. do drugiego węzła odwołuje się pierwszy węzeł, do trzeciego – drugi i tak dalej.
Więcej informacji znajdziesz w artykule – Wewnętrzne działanie HashMap w Javie
40. Co to jest WeakHashMap?
WeakHashMap implementuje interfejs mapy. W przeciwieństwie do HashMap, WeakHashMap umożliwia odśmiecanie nawet jeśli obiekt określony jako klucz nie zawiera żadnych referencji, mimo że jest powiązany z WeakHashMap. Innymi słowy, Garbage Collector jest lepszy niż WeakHashMap.
Więcej informacji znajdziesz w artykule – Hashmap vs WeakHashMap w Javie
41. Co to jest wyjątek UnsupportedOperationException?
W kontekście interfejsów API lub implementacji list wyjątek UnsupportedOperationException jest częstym wyjątkiem. Wyjątek jest zgłaszany, gdy nie można wykonać żądanej operacji. Ta klasa jest członkiem środowiska Java Collections Framework.
Składnia:
public class UnsupportedOperationException extends RuntimeException>
Więcej informacji znajdziesz w artykule – Nieobsługiwany wyjątek operacji
42. Jak ustawić kolekcję w trybie tylko do odczytu w Javie?
Tworzenie kolekcji tylko do odczytu wiąże się z ograniczeniem obiektu do jedynie pobierania danych, bez dodawania lub usuwania danych. Java ma różne metody dla różnych typów kolekcji, takie jak unmodifyingCollection(), unmodifyingMap(), ununmodibleSet() itp. java.util.Klasa kolekcji definiuje wszystkie metody. Metoda unmodifyingCollection() tworzy kolekcję tylko do odczytu. Wymaga odniesienia do klasy Collection. Jeśli mamy obiekt Set Interface, możemy go użyć niemodyfikowalnySet() aby ustawić opcję Tylko do odczytu.
Więcej informacji znajdziesz w artykule – Jak ustawić kolekcję tylko do odczytu w Javie?
43. Różnica pomiędzy PriorityQueue i TreeSet w Javie?
| Kolejka priorytetowa | Zestaw drzew |
|---|---|
| PriorityQueue jest dostępny w JDK 1.5. | TreeSet jest dostępny w JDK 1.4. |
| Struktura danych używana przez PriorityQueue to Queue | Struktura danych używana przez TreeSet to Set. |
| Zduplikowane elementy są dozwolone. | Zduplikowane elementy są niedozwolone. |
| Z wyjątkiem elementu głównego, pozostałe elementy nie mają określonej kolejności w PriorityQueue. | W TreeSet wszystkie elementy pozostają w posortowanej kolejności. |
| Używając PriorityQueue, możemy pobrać największy lub najmniejszy element w czasie O(1). | TreeSet nie umożliwia pobrania największego lub najmniejszego elementu w czasie O(1), ale ponieważ są one ułożone w kolejności posortowanej, pobiera pierwszy lub ostatni element w czasie O(1). |
Więcej informacji znajdziesz w artykule – Różnica między kolejką priorytetową a zestawem drzew
44. Jaki jest operator rombu w Javie?
Operatory rombu służą do uproszczenia użycia typów ogólnych podczas tworzenia obiektów i uniknięcia niesprawdzonych ostrzeżeń w programie. Kiedy w Javie 7 wprowadzono operator Diamond, możemy utworzyć obiekt bez wspominania o typie ogólnym po prawej stronie wyrażenia, jak pokazano poniżej.
Składnia:
List list = new ArrayList();>
Więcej informacji znajdziesz w artykule – Operator diamentowy
45. Jak TreeMap działa w Javie?
Mapa Drzewa przechowuje pary klucz-wartość, ale TreeMap sortuje klucze rosnąco, a nie malejąco, jak HashMap. W zależności od użytego konstruktora TreeMap zostanie posortowany albo na podstawie kluczy, albo według komparatora. W TreeMap elementy są sortowane w oparciu o czerwono-czarne drzewo. Drzewo czerwono-czarne to samobalansujące się drzewo poszukiwań binarnych, w którym każdy węzeł ma dodatkowy bit, który jest często interpretowany jako kolor (czerwony lub czarny). Kolory te służą do zapewnienia równowagi drzewa podczas wstawiania i usuwania.

Struktura węzła w Javie
Więcej informacji znajdziesz w artykule – Wewnętrzne działanie TreeMap w Javie
46. Wymień sposoby iteracji po Mapie w Javie?
Klasa HashMap udostępnia interfejs Map języka Java, przechowując dane w parach (Klucz, Wartość) i uzyskując do nich dostęp za pomocą indeksu innego typu. Aby skorzystać z tej klasy należy dokonać importu java.util.HashMap pakiet lub jego nadklasa.
Istnieje wiele sposobów iteracji po HashMap, z których 5 wymieniono poniżej:
- Iteruj po zestawie wpisów HashMap za pomocą iteratorów.
- Iteruj po zestawie kluczy HashMap za pomocą Iteratora.
- Iteruj HashMap za pomocą pętli for-each.
- Iteracja po HashMap przy użyciu wyrażeń Lambda.
- Wykonaj pętlę przez HashMap przy użyciu Stream API.
Więcej informacji znajdziesz w artykule – Jak iterować HashMap w Javie
47. Co to jest CopyOnWriteArrayList w Javie?

CopyOnWriteArrayList w Javie
JDK 1.5 wprowadził ulepszoną wersję ArrayList o nazwie CopyOnWriteArrayList, w której wszystkie modyfikacje (dodawanie, ustawianie, usuwanie itp.) są implementowane przez nową kopię. Można go znaleźć w java.util.concurrent. Jest to struktura danych stworzona do użycia w środowisku współbieżnym. W środowisku opartym na wątkach CopyOnWriteArrayList jest przeznaczony do częstego czytania i rzadkiego aktualizowania. CopyOnWriteArrayList to bezpieczna wątkowo wersja ArrayList.
Więcej informacji znajdziesz w artykule – CopyOnWriteArrayList w Javie
48. Co to jest EnumMap w Javie?
EnumMap jest implementacją interfejsu Map specyficznego dla typów wyliczeniowych. Klasa EnumMap jest członkiem platformy Java Collections Framework i nie jest zsynchronizowana. Rozszerza AbstractMap i implementuje interfejs Map w Javie. EnumMap należy do pakietu java.util.
Składnia:
klasa publiczna EnumMap
rozszerza AbstractMap implementuje możliwość serializacji i klonowania liczba pierwsza java// K musi rozszerzać Enum, co wymusza wymaganie, aby klucze były określonego typu wyliczeniowego.
Parametry:
- Typ obiektu kluczowego
- Typ obiektu wartości

EnumMap w Javie
Więcej informacji znajdziesz w artykule – Klasa EnumMap w Javie
49. Jak wewnętrznie działa Hashmap?
HashMap działa na zasadzie haszowania. HashMap zawiera tablicę Node, a Node może reprezentować klasę posiadającą następujące obiekty:
- int skrót
- Klawisz K
- Wartość V
- Węzeł następny
Wewnętrzne działanie HashMap:
- Haszowanie
- Wiadra
- Obliczanie indeksu w Hashmap
Więcej informacji znajdziesz w artykule – Wewnętrzne działanie HashMap w Javie
pięćdziesiąt. Dlaczego iterator w hashmapie jest uważany za niezawodny?
Iteratory odporne na awarie natychmiast zgłaszają wyjątki modyfikacji współbieżnych, jeśli jakikolwiek wątek z zewnątrz spróbuje zmodyfikować kolekcję, w której iterują. Funkcja Fail-Fast zapewnia, że iterator natychmiast ulegnie awarii, jeśli wykryje, że jakakolwiek modyfikacja kolekcji doprowadzi do nietypowego zachowania w przyszłości.
Szybka porażka Funkcja gwarantuje, że jeśli iterator uzna, że modyfikacja kolekcji spowoduje nieprawidłowe zachowanie w dowolnym momencie w przyszłości, natychmiast zakończy się niepowodzeniem.
Przykład:
Jawa
// 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>);> >}> >}> >}> }> |
>
>
Wyjście:
[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)>
Wniosek
Kolekcje Javy jest ważne dla programistów i programistów Java, ponieważ Java jest szeroko stosowana w różnych gałęziach przemysłu. Dla programistów ważne jest, aby dobrze rozumieć podstawowe koncepcje kolekcji Java. Java jest jednym z najpowszechniej używanych języków w czołowych firmach takich jak Ubera , Airbnb , Google , Netflixa , Instagrama , Spotify, Amazonka itp. Aby dostać się do tych lub innych firm informatycznych, musisz opanować te najczęściej zadawane pytania podczas rozmów kwalifikacyjnych w Java Collections, aby złamać ich ocenę online i rozmowę techniczną opartą na Javie.
Jeśli chcesz poćwiczyć pytania dotyczące kodowania, Programy do gromadzenia Java może być pomocnym źródłem.
Pytania do wywiadu dotyczącego kolekcji Java — często zadawane pytania
1. Czym są zbiory pytań do rozmowy kwalifikacyjnej w języku Java?
Kolekcja w Javie to framework używany do przechowywania kolekcji obiektów i manipulowania nimi.
2. Jakie są 4 klasy kolekcji w Javie?
W Javie istnieje wiele kolekcji, ale najczęściej używanymi kolekcjami są:
- Lista tablic
- Połączona lista
- Zestaw skrótów
- Stos
3. Czy HashMap może mieć zduplikowane klucze?
Nie, HashMap nie może mieć duplikatów kluczy. Ponieważ HashMap jest jedną z kolekcji w Javie, przechowuje wartość w postaci pary klucz-wartość, a każdy klucz ma dołączoną własną wartość. Tak więc, ponieważ żaden klucz nie może mieć dwóch wartości, oznacza to, że nie możemy mieć duplikatów kluczy w HashMap.
4. Dlaczego tablica nie jest kolekcją?
Tablica nie jest kolekcją, wszystko wynika z różnicy w funkcjonalności kolekcji i tablic, z których kilka wymieniono poniżej:
- Po zadeklarowaniu rozmiaru tablicy nie można zmienić
- Tablice mogą zawierać tylko elementy jednorodnych typów danych.
- Tablica może przechowywać zarówno prymitywne typy danych, jak i obiekty, podczas gdy w kolekcjach może przechowywać tylko obiekty opakowujące.