Wywiad Pytania i odpowiedzi dotyczące kolekcji Java [Dla nowicjuszy i doświadczonych]
Opublikowany: 2020-12-16Jeśli miałeś do czynienia z Javą na studiach licencjackich lub pracowałeś z Javą, musisz dobrze znać strukturę Java Collection. Jeśli chodzi o początkujących, którzy dopiero rozpoczęli swoją przygodę z Javą, framework Collection jest zunifikowaną architekturą zaprojektowaną do przechowywania i manipulowania grupą (kolekcją) obiektów.
Zasadniczo „kolekcja” reprezentuje pojedynczą grupę obiektów. Kolekcja Java zawiera interfejsy, klasy (ArrayList, Vector, Stack i Hashtable itp.) oraz algorytmy z gotową do użycia architekturą do przechowywania i obsługi danych.
W tym artykule przyjrzymy się najczęściej zadawanym pytaniom z wywiadów dotyczących Java Collections. Stworzyliśmy listę podstawowych pytań, które najczęściej zadają rozmowy kwalifikacyjne podczas rozmowy kwalifikacyjnej na profile Java. Powinno to pomóc Ci zrozumieć, na jakie pytania możesz się spodziewać podczas następnego wywiadu.
Pytania i odpowiedzi dotyczące kolekcji Java
1. Jaka jest zaleta korzystania z frameworka Collections?
Kolekcje Java zawierają zarówno klasy Generics, jak i Concurrent dla operacji bezpiecznych wątkowo. Ponadto jest wyposażony w interfejsy blokujące wraz z ich implementacjami w jednoczesnych pakietach Java. Oto kilka zalet platformy Java Collections:
Ułatwia ponowne wykorzystanie kodu i interoperacyjność.

Korzystanie z klas kolekcji rdzeni znacznie zmniejsza nakład pracy i czas tworzenia.
Klasy kolekcji dostarczane z JDK zmniejszają nakład pracy wymagany do konserwacji kodu.
2. Rozróżnij tablicę i kolekcję.
Chociaż tablica i kolekcja są używane do przechowywania obiektów i manipulowania danymi, mają kilka wrodzonych różnic:
- Nie możesz zwiększać ani zmniejszać długości tablicy zgodnie z wymaganiami środowiska uruchomieniowego — rozmiar tablic jest stały. Możesz jednak zmienić rozmiar kolekcji zgodnie z potrzebami skalowania.
- Tablica może przechowywać tylko jednorodne (podobne lub takie same) obiekty, podczas gdy kolekcja może przechowywać heterogeniczną grupę obiektów.
- Chociaż tablice nie oferują gotowych do użycia metod (wyszukiwania, sortowania, wstawiania itp.) dla wymagań użytkownika, kolekcje zawsze zawierają metody gotowe do użycia.
3. Jaka jest rola Generics w ramach Collections?
Generics pozwala określić lub zdefiniować typ obiektów, które może przechowywać kolekcja. Jeśli spróbujesz dodać element innego typu, Generics wyświetli błąd w czasie kompilacji. W związku z tym, wyświetlając błąd podczas kompilacji, pomaga zapobiegać ClassCastException w czasie wykonywania. Co więcej, ponieważ Generics eliminuje potrzebę używania funkcji rzutowania i instanceof, sprawia, że kod jest czysty i precyzyjny.
4. Nazwij interfejsy platformy Collections.
Oto pięć podstawowych interfejsów w strukturze Collections:
Interfejs kolekcji — jest podstawą hierarchii kolekcji Java. Większość kolekcji w Javie jest dziedziczona z interfejsu Kolekcje.
Interfejs list – jest to rozszerzona tablica zawierająca uporządkowane elementy wraz z ich duplikatami. Ten interfejs obsługuje wyszukiwanie oparte na indeksie. Możesz więc uzyskać dostęp do dowolnego elementu z jego indeksu. Jest zaimplementowany przy użyciu różnych klas, takich jak ArrayList, LinkedList itp.
Set interface – Jest to klasa kolekcji, która nie może zawierać zduplikowanych elementów. W przeciwieństwie do List nie obsługuje wyszukiwania opartego na indeksie i nie definiuje żadnej kolejności elementów. Zestaw modeluje matematyczną abstrakcję zestawu i jest implementowany przez klasy takie jak HashSet, TreeSet, LinkedHashSet itp.
Interfejs mapy — jest to dwuwymiarowa struktura danych, która przechowuje dane w parach klucz-wartość. Chociaż klucz jest unikalnym hashcode, wartość oznacza element. Mapa nie może mieć zduplikowanych kluczy/elementów.
Interfejs kolejki — ten interfejs organizuje element w podejściu pierwsze weszło, pierwsze wyszło (FIFO). W ten sposób elementy interfejsu kolejki są usuwane z przodu i dodawane z tyłu.
Przeczytaj także: Jak kodować, kompilować i uruchamiać projekty Java
5. Kiedy należy zastąpić metodę equals() w Javie?
Chociaż początkowa implementacja metody equals() sprawdza, czy dwa obiekty są podobne, konieczne jest nadpisanie metody equals(), jeśli chcesz porównać obiekty na podstawie ich właściwości.
6. Czy warto korzystać z pliku Właściwości?
Tak, korzystanie z pliku Properties w Javie daje dużą przewagę – jeśli zmienisz wartości w tym pliku, zostanie to automatycznie odzwierciedlone, bez konieczności ponownej kompilacji klasy Javy. W rezultacie plik Właściwości służy głównie do przechowywania informacji, które mogą ulec zmianie (na przykład nazwy użytkownika i hasła. Pozwala to na łatwe zarządzanie aplikacją Java.
7. Jaka jest funkcja Iteratora w ramach Collection?
Iterator to interfejs dostarczany w pakiecie java.util. Znany również jako Universal Java Cursor, Iterator pomaga w iteracji kolekcji obiektów. Iterator umożliwia przekazywanie kolekcji obiektów jeden po drugim i obsługuje operacje READ i REMOVE. Jest szeroko stosowany, ponieważ nazwy metod Iteratora można łatwo zaimplementować.
8. Jak możesz sortować obiekty Kolekcji?
W ramach Collections sortowanie jest zwykle realizowane przy użyciu interfejsów Comparable i Comparator . Jeśli użyjesz metody Collections.sort(), posortuje ona elementy na podstawie kolejności naturalnej określonej w metodzie CompareTo(). Jednak użycie metody Collections.sort(Comparator) spowoduje posortowanie elementów zgodnie z metodą Compare() interfejsu Comparator.
Przeczytaj: Projekt Java Swing

9. Czy można przekonwertować ArrayList na Array i Array na ArrayList?
Tak, jest to możliwe. Tablicę Array można przekonwertować na ArrayList za pomocą funkcji asList() klasy Array. Składnia tego jest następująca:
Arrays.asList(item)
Możesz przekonwertować ArrayList na Array za pomocą funkcji toArray() klasy ArrayList, na przykład:
List_object.toArray(nowy String[List_object.size()])
10. Jak odwrócić listę?
Jak odwrócisz ArrayList?
ArrayList można odwrócić za pomocą funkcji reverse() klasy Collections. Składnia tego jest następująca:
publiczne statyczne odwrócenie pustej przestrzeni (kolekcja c)
11. Co to jest „Kolejka blokowania?”
Interfejs BlockingQueue znajduje się w pakiecie java.util.concurrent . Jego głównym celem jest zwiększenie kontroli przepływu poprzez aktywację blokowania za każdym razem, gdy wątek próbuje usunąć z kolejki pustą kolejkę lub umieścić w kolejce istniejącą pełną kolejkę. Interfejs BlockingQueue nie akceptuje wartości null, a jeśli spróbujesz wstawić wartość null, wyświetli wyjątek NullPointerException.
12. Wyjaśnij „Kolejka priorytetów”.
Kolejka priorytetowa to abstrakcyjny typ danych, taki jak standardowa kolejka lub struktura danych stosu. Jednak w tej kolejce każdy element ma unikalną cechę zwaną „priorytetem”. Ponieważ opiera się na stercie priorytetów, kolejka priorytetów obsługuje element o wysokim priorytecie przed elementem o niskim priorytecie, niezależnie od ich kolejności wstawiania. W kolejce priorytetowej elementy są uporządkowane zgodnie z naturalną kolejnością lub przez komparator używany w czasie budowy kolejki (w zależności od używanego konstruktora).
13. Jak klasa HashSet przechowuje elementy?
Klasa HashSet jest członkiem struktury Java Collections, która dziedziczy klasę AbstractSet i implementuje interfejs Set.
HashSet implementuje Hashtable zarówno do tworzenia, jak i przechowywania kolekcji elementów. Hashtable to instancja klasy HashMap, która używa mechanizmu mieszania do przechowywania danych w HashSet. Hashing odnosi się do techniki przekształcania informacji w unikalną wartość znaną jako Hash Code. Kod skrótu indeksuje dane powiązane z unikalnym kluczem.
14. Czy można dodać element null do TreeSet lub HashSet?
Chociaż możesz dodać tylko jeden element null w HashSet, nie możesz tego zrobić w TreeSet, ponieważ używa on NavigableMap do przechowywania elementów. NavigableMap jest podtypem SortedMap, który nie akceptuje/obsługuje wartości null. Wstawienie elementu null do TreeSet spowoduje wyzwolenie NullPointerException.
15. Co robi funkcja emptySet()?
W Javie metoda Collections.emptySet() służy do zwracania pustego zestawu niezmiennego przez wyeliminowanie wszystkich elementów o wartości null. Oto składnia deklarowania funkcji emptySet():
public static final <T> Set<T> emptySet()
16. Dlaczego interfejs mapy nie rozszerza interfejsu kolekcji?
Podczas gdy interfejs Map jest zgodny ze strukturą pary klucz-wartość, interfejs Collection przechowuje kolekcję obiektów w uporządkowany sposób ze zdefiniowanym mechanizmem dostępu. Map nie rozszerza interfejsu Collection, ponieważ funkcja add(E e) interfejsu Collection nie obsługuje modelu pary klucz-wartość funkcji put (klucz K, wartość V) Map.
17. Nazwij różne widoki kolekcji rozszerzone przez interfejs mapy.
Interfejs mapy oferuje trzy widoki par klucz-wartość, a mianowicie:
- Widok zestawu kluczy
- Widok zestawu wartości
- Widok zestawu wpisów
18. Wymień podstawowe funkcje Java Hashmap.
Podstawowe cechy Hashmap to:
- Możesz przechowywać elementy, tworząc pary klucz-wartość i pobrać wartość, przekazując klucz do właściwej metody.
- Wyświetla NoSuchElementException, jeśli żaden element nie istnieje w mapie.
- Przechowuje tylko odwołania do obiektów, co uniemożliwia używanie prymitywnych typów danych, takich jak double lub int. Zamiast tego możesz użyć klasy opakowującej, takiej jak Integer lub Double.
Koniecznie przeczytaj: Pytania i odpowiedzi dotyczące wywiadu w języku Java
19. Zdefiniuj „Stos”.

W Javie stos oznacza wyznaczony obszar pamięci komputera, który przechowuje tymczasowe zmienne utworzone przez funkcję. Zmienne są deklarowane, przechowywane i inicjowane w czasie wykonywania w stosie.
20. Zdefiniuj „notację Big-O”.
Notacja Big-O określa wydajność algorytmu w odniesieniu do liczby elementów w strukturze danych. Klasy kolekcji są strukturami danych, a zatem musisz użyć notacji Big-O, aby zdecydować, której implementacji kolekcji użyć na podstawie pamięci, czasu i wydajności.
Zapisz się na kursy inżynierii oprogramowania z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.
Wniosek
Jeśli chcesz dowiedzieć się więcej na temat Java, pełnego stosu oprogramowania, sprawdź program Executive PG UpGrad i IIIT-B w zakresie pełnego stosu oprogramowania, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 500 godzin rygorystycznego szkolenia, 9+ projekty i zadania, status absolwentów IIIT-B, praktyczne praktyczne projekty zwieńczenia i pomoc w pracy z najlepszymi firmami.

