Oto pytania do wywiadu dotyczącego kolekcji Java dla świeższych i doświadczonych kandydatów, którzy chcą znaleźć wymarzoną pracę.
1) Co to jest framework w Javie?
Framework to popularna i gotowa architektura, która zawiera zestaw klas i interfejsów.
2) Co to jest struktura kolekcji w Javie?
Collection Framework to grupa klas i interfejsów służąca do przechowywania obiektów i zarządzania nimi. Zapewnia różne klasy, takie jak Vector, ArrayList, HashSet, Stack itp. Framework Java Collection może być również używany do interfejsów, takich jak Queue, Set, List itp.
3) Wyjaśnij klasę zbiorów
java.util.Collections to klasa składająca się ze statycznych metod, które działają na kolekcjach. Zawiera algorytmy polimorficzne do działania na zbiorach, „opakowaniach”. Ta klasa zawiera metody dla algorytmów, takich jak sortowanie binarne, wyszukiwanie, tasowanie itp.
4) Co to jest hashCode ()?
HashCode () to metoda zwracająca całkowity kod skrótu.
5) Rozróżnij ArrayList i Vector w ramach kolekcji Java.
ArrayList | Wektor |
Nie można zsynchronizować tablicy ArrayList. | Wektor może być zsynchronizowany. |
Nie jest klasą starszą. | To jest klasą starszą. |
Może zwiększyć swój rozmiar o 50% rozmiaru tablicy. | Może zwiększyć swój rozmiar, podwajając rozmiar tablicy. |
ArrayList nie jest bezpieczna wątkowo. | Wektor jest bezpieczny dla wątków. |
6) Co to jest ArrayList w Javie?
ArrayList to struktura danych, którą można rozciągnąć, aby pomieścić w sobie dodatkowe elementy i zmniejszyć do mniejszego rozmiaru po usunięciu elementów. Jest to bardzo ważna struktura danych przydatna w obsłudze dynamicznego zachowania elementów.
7) Rozróżnij Iterator i ListIterator
Różnica między Iteratorem a ListIteratorem jest następująca:
Iterator | ListIterator |
Iterator może przechodzić przez elementy tablicy w kierunku do przodu. | ListIterator może przechodzić przez elementy tablicy zarówno w kierunku wstecz, jak i do przodu. |
Może być używany w kolejce, liście i zestawie. | Może być używany w liście. |
Może wykonać tylko operację usunięcia. | Może wykonywać operacje dodawania, usuwania i ustawiania podczas przeglądania kolekcji. |
8) Jaka jest różnica między Iteratorem a Enumeracją?
Różnica między Iteratorem a wyliczeniem
Iterator | Wyliczenie |
Iterator może przechodzić zarówno przez elementy spuścizne, jak i inne. | Wyliczenie może przechodzić tylko przez starsze elementy. |
Iterator jest odporny na awarie. | Wyliczanie nie jest szybkie. |
Iterator działa bardzo wolno w porównaniu z wyliczaniem. | Wyliczenie jest szybkie w porównaniu z Iteratorem. |
Iterator może wykonać operację usuwania podczas przeglądania kolekcji. | Wyliczenie może wykonać tylko operację przechodzenia na kolekcji. |
9) Zdefiniuj BlockingQueue
BlockingQueue to interfejs używany w Javie, który może rozszerzyć kolejkę. Zapewnia współbieżność w różnych operacjach kolejki, takich jak pobieranie, wstawianie, usuwanie itp.
Kolejka czeka, aż stanie się niepusta w momencie pobierania jakichkolwiek elementów. BlockingQueue nie powinno zawierać elementów o wartości null. Implementacja tej kolejki jest bezpieczna wątkowo.
Składnia BlockingQueue to:
public interface BlockingQueueextends Queue
10) Wyjaśnij metodę override equals ()
Metoda equals służy do sprawdzania podobieństwa między dwoma obiektami. W przypadku, gdy programista chce sprawdzić obiekt na podstawie właściwości, należy go przesłonić.
11) Jaka jest różnica między Porównywalny a Komparator?
Różnica między Porównywalnym a Komparatorem to:
Porównywalny | Komparator |
Comparable udostępnia metodę compareTo () do sortowania elementów w Javie. | Komparator udostępnia metodę compare () do sortowania elementów w Javie. |
Porównywalny interfejs znajduje się w pakiecie java.lang. | Interfejs komparatora jest obecny w java. pakiet util. |
Logika sortowania musi należeć do tej samej klasy, której obiekt chcesz posortować. | Logika sortowania powinna być w osobnej klasie, aby zapisać różne sortowanie w oparciu o różne atrybuty obiektów. |
Klasa, której obiekty chcesz posortować, musi implementować porównywalny interfejs. | Klasa, której obiekty chcesz posortować, nie musi implementować interfejsu komparatora. |
Zapewnia pojedyncze sekwencje sortowania. | Zapewnia wiele sekwencji sortowania. |
Ta metoda umożliwia sortowanie danych zgodnie z naturalną kolejnością sortowania. | Ta metoda sortuje dane zgodnie z niestandardową kolejnością sortowania. |
Wpływa na oryginalną klasę. tj. aktualna klasa została zmieniona. | Nie ma to wpływu na oryginalną klasę, tj. Aktualna klasa nie jest zmieniana. |
Często implementowane w interfejsie API przez Calendar, Wrapper class, Date i String. | Jest zaimplementowany w celu sortowania wystąpień klas innych firm. |
Wszystkie klasy opakowania i klasa String implementują porównywalny interfejs. | Jedyne zaimplementowane klasy komparatora to Collator i RuleBasedColator. |
12) Wyjaśnij equals () na przykładzie
Equals () sprawdza, czy obiekt number jest równy obiektowi, który jest przekazywany jako argument, czy nie.
Składnia metody equals () jest następująca:
public boolean equals(Object o)
Ta metoda przyjmuje dwa parametry 1) dowolny obiekt, 2) zwracaną wartość. Zwraca prawdę, jeśli przekazany argument nie ma wartości null i jest obiektem podobnego typu o tej samej wartości liczbowej.
Przykład:
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) Wymień korzyści płynące z kolekcji ogólnej
Korzyści płynące z używania kolekcji ogólnej to:
- Jeśli programiści używają klas ogólnych, nie wymagają rzutowania typów.
- Jest bezpieczny dla typów i można go sprawdzić podczas kompilacji.
- Zapewnia stabilność kodu, wykrywając błąd w czasie kompilacji.
14) Wyjaśnij metodę konwersji ArrayList do Array i Array do ArrayList
Programiści mogą przekonwertować Array na ArrayList przy użyciu metody asList () klasy Arrays. Jest to statyczna metoda klasy Arrays, która akceptuje obiekt List. Składnia metody asList () jest następująca:
Arrays.asList(item)
Programiści Java mogą przekonwertować ArrayList na obiekt List przy użyciu składni:
List_object.toArray(new String[List_object.size()])
15) Podaj przykład ArrayList
Przykład reverse ArrayList to:
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) Podaj przykład sortowania tablicy w kolejności rosnącej
Przykład sortowania tablicy w porządku malejącym:
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) Wyjaśnij podstawowe interfejsy struktury kolekcji Java
Struktura kolekcji Java jest elementem głównym hierarchii kolekcji. Reprezentuje grupę obiektów jako jej elementy. Język programowania Java nie zapewnia bezpośredniej implementacji takiego interfejsu.
- Zestaw: zestaw to zbiór nie zawierający zduplikowanych elementów. Używa hashy do przechowywania elementów.
- Lista: lista to uporządkowana kolekcja, która może zawierać zduplikowane elementy. Umożliwia programistom dostęp do dowolnych elementów ze swojej skrzynki odbiorczej. Lista jest jak tablica o dynamicznej długości.
- MAPA: Jest to obiekt, który odwzorowuje klucze na wartości. Nie może zawierać zduplikowanych kluczy. Każdy klucz może być przypisany do co najmniej jednej wartości.
18) Jakie są funkcje Java Hashmap?
Funkcje Java Hashmap to:
- Wartości można przechowywać na mapie, tworząc parę klucz-wartość. Wartość można pobrać za pomocą klucza, przekazując go do odpowiedniej metody.
- Jeśli w Mapie nie ma żadnego elementu, zgłosi „NoSuchElementException”.
- HashMap przechowuje tylko odniesienia do obiektów. Dlatego niemożliwe jest użycie prymitywnych typów danych, takich jak double lub int. Zamiast tego użyj klasy opakowania (takiej jak Integer lub Double).
19) Co to jest stos?
Stos to specjalny obszar pamięci komputera, który przechowuje tymczasowe zmienne utworzone przez funkcję. W stosie zmienne są deklarowane, przechowywane i inicjowane w czasie wykonywania.
20) Co to jest lista połączona?
Lista połączona to struktura danych, w której można przechowywać kolekcję elementów. Innymi słowy, połączone listy mogą służyć do przechowywania kilku obiektów tego samego typu. Każda jednostka lub element listy jest nazywany węzłem. Węzeł na liście Połączone ma swoje dane i adres następnego węzła. To jest jak łańcuch. Listy połączone służą do tworzenia wykresów i drzew.
21) Podaj przykład ArrayList
Przykład ArrayList to:
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) Wyjaśnij listę połączoną obsługiwaną przez Javę
Dwa typy list połączonych obsługiwanych przez Javę to:
- Lista pojedynczo połączona: Lista pojedynczo połączona to rodzaj struktury danych. Na liście pojedynczo połączonej każdy węzeł na liście przechowuje zawartość węzła i odniesienie lub wskaźnik do następnego węzła na liście. Nie przechowuje żadnych odniesień ani wskaźników do poprzedniego węzła.
- Listy podwójnie połączone: Listy podwójnie połączone to specjalny typ list połączonych, w których przechodzenie między elementami danych może odbywać się w obu kierunkach. Jest to możliwe dzięki dwóm łączom w każdym węźle, jednym łączącym się z następnym węzłem i drugim łączącym się z poprzednim węzłem.
23) Wyjaśnij metody zapewniane przez interfejs Queue?
Metody interfejsu Java Queue to:
metoda | Opis |
dodanie logiczne (obiekt) | Wstawia określony element do Queue. Zwraca prawdę w przypadku sukcesu. |
oferta logiczna (obiekt) | Ta metoda służy do wstawiania elementu do kolejki. |
Usuń obiekt () | Pobiera i usuwa nagłówek kolejki. |
Sonda obiektu () | (): Pobiera i usuwa nagłówek kolejki lub zwraca wartość null w przypadku, gdy jest pusta. |
Sonda obiektu () | Pobiera i usuwa nagłówek kolejki lub zwraca wartość null w przypadku, gdy jest pusta. |
Element obiektu () | Pobiera dane z kolejki, ale nie usuwa ich nagłówka. |
Podgląd obiektu () | Pobiera dane z kolejki, ale nie usuwa ich nagłówka, lub w przypadku, gdy kolejka jest pusta, pobiera wartość null. |
24) Wspomnij o metodach zapewnianych przez klasę Stack
Ważnymi metodami udostępnianymi przez klasę Stack są:
- push (): Wepchnij element do stosu.
- empty (): Ta metoda stwierdza, czy stos jest pusty, czy nie.
- pop (): Ta metoda kolekcji Java usuwa obiekt ze stosu.
- search (): Ta metoda przeszukuje elementy w stosie.
- peek (): Ta metoda Java sprawdza obiekt stosu bez jego usuwania.
25) Zdefiniuj emptySet () w strukturze kolekcji Java
Metoda emptySet (), która zwraca pusty niezmienny zestaw za każdym razem, gdy programiści próbują usunąć elementy o wartości null. Zestaw zwracany przez emptySet () jest możliwy do serializacji. Składnia tej metody to:
public static final
26) Rozróżnij kolekcję i kolekcje
Różnica między kolekcją a kolekcją to:
Kolekcja | Kolekcje |
Kolekcja jest interfejsem. | Kolekcje to klasa. |
Reprezentuje grupę obiektów jako pojedynczą całość. | Definiuje różne metody narzędziowe dla obiektów kolekcji. |
Kolekcja jest głównym interfejsem struktury Java Collection. | Kolekcje to ogólna klasa użytkowa. |
Ten interfejs służy do wyprowadzania struktur danych kolekcji. | Ta klasa zawiera statyczne metody do manipulowania strukturą danych. |
27) Zdefiniować LinkedHashSet w środowisku Java Collection?
LinkedHashSet jest podklasą klasy o nazwie HashSet i implementuje interfejs zestawu. Jest to dobrze uporządkowana wersja HashSet, która utrzymuje podwójnie połączoną listę wszystkich swoich elementów.
28) Jaka jest różnica między odpornością na uszkodzenia a niezawodnością?
Bezawaryjny | Failsafe |
Nie pozwala na modyfikację kolekcji podczas iteracji. | Umożliwia modyfikację kolekcji podczas iteracji. |
Może zgłosić wyjątek ConcurrentModificationException | Nie może zgłosić żadnego wyjątku. |
Wykorzystuje oryginalną kolekcję do przechodzenia przez żywioły. | Używa oryginalnej kopii kolekcji do przechodzenia przez elementy. |
Nie jest wymagana dodatkowa pamięć. | Wymagana jest dodatkowa pamięć. |
29) Lista widoków kolekcji interfejsu mapy
Widoki kolekcji interfejsu mapy to: 1) widok zestawu kluczy, 2) widok zestawu wartości i 3) widok zestawu wpisów.
30) Jakie są zalety struktury kolekcji w Javie?
Korzyści z Collection Framework w Javie to:
- Framework kolekcji Java oferuje wysoce wydajne i efektywne struktury danych, które zwiększają dokładność i szybkość programu.
- Program opracowany w ramach kolekcji Java jest łatwy w utrzymaniu.
- Deweloper może mieszać klasy z innymi typami, co zwiększa możliwość ponownego wykorzystania kodu.
- Struktura kolekcji Java umożliwia programistom modyfikowanie pierwotnych typów kolekcji w sposób, w jaki im się podoba.
31) Jaki jest dobry sposób sortowania obiektów kolekcji w Javie?
Dobrym sposobem sortowania obiektów kolekcji Java jest użycie interfejsów Porównywalny i Komparator. Deweloper może użyć Collections.sort (), elementy są sortowane na podstawie kolejności wzmianki w compareTo ().
Gdy programista używa Kolekcje, sortowanie (komparator), sortuje obiekty w zależności od funkcji compare () w interfejsie komparatora.
32) Wyjaśnij, czym jest Vector w Javie
Wektor jest taki sam jak tablica. Zawiera komponenty, do których można uzyskać dostęp za pomocą wartości indeksu. Wektory mogą zawierać starszą metodę, która nie jest częścią struktury kolekcji.
33) Jaka jest różnica między Set i Map?
Zestaw | Mapa |
Zestaw należy do package-java.util. | Mapa należy do pakietu java.util. |
Może rozszerzyć interfejs kolekcji. | Nie rozszerza interfejsu kolekcji. |
Nie zezwala na zduplikowane wartości. | Pozwala na zduplikowane wartości. |
Set może sortować tylko jedną wartość null. | Mapa może sortować wiele wartości null. |
34) Zdefiniuj klasę słownika
Klasa Dictionary to klasa Java, która może przechowywać pary klucz-wartość.
35) Zdefiniuj EnumSet
java.util.EnumSet to implementacja Set, której można używać z typami wyliczeń. EnumSet mający wszystkie elementy musi pochodzić z jednego typu wyliczenia określonego jawnie lub niejawnie. Nie jest zsynchronizowany, a także klucze puste nie są dozwolone. EnumSet zapewnia metody, takie jak EnumSetof (E first, E
… Rest), complementOf (EnumSet s) i copyOf (kolekcja c).36) Jakie są dwa sposoby usuwania duplikatów z ArrayList?
Dwa sposoby usuwania duplikatów z ArrayList to:
- HashSet: deweloper może użyć HashSet, aby usunąć zduplikowany element z ArrayList. Wadą jest to, że nie może zachować zamówienia reklamowego.
- LinkedHashSet: programiści mogą również utrzymywać kolejność wstawiania za pomocą LinkedHashSet zamiast HashSet.
37) Co to jest IdentityHashMap?
IdentityHashMap to klasa, która implementuje interfejsy Serializable, Clonable, Map i rozszerza klasę AbstractMap. Jest przeznaczony dla przypadku, w którym istnieje potrzeba semantyki równości odniesienia.
38) Co to jest WeakHashMap?
WeakHashMap to implementacja mapy Java. Służy do przechowywania słabych odniesień do swoich kluczy. Sortowanie przy użyciu tej mapy umożliwia zbieranie pary klucz-wartość jako śmieci. Do jego klucza nie ma odniesienia poza WeakHashMap.
39) Jakie są metody zabezpieczania kolekcji przed wątkami?
Metody zapewniające bezpieczeństwo wątku kolekcji to:
- Collections.synchronizedList (lista);
- Collections.synchronizedMap (mapa);
- Collections.synchronizedSet (zestaw);
40) Wyjaśnij UnsupportedOperationException
UnsupportedOperationException to wyjątek, który jest zgłaszany w przypadku metod, które nie są obsługiwane przez rzeczywisty typ kolekcji.
Na przykład programista tworzy listę tylko do odczytu za pomocą „Collections.unmodifiableList (list)” i wywołuje metodę call (), add () lub remove (). Powinien wyraźnie zgłaszać wyjątek UnsupportedOperationException.
41) Nazwij klasy kolekcji, które zapewniają losowy dostęp do elementów
Klasy kolekcji, które dają losowy dostęp do elementów to: 1) ArrayList, 2) HashMap, 3) TreeMap i 4) Hashtable.
42) Wyjaśnij różnicę między Queue a Deque.
Kolejka | Deque |
Nazywa się to kolejką z pojedynczym zakończeniem | Nazywa się to kolejką dwustronną |
Elementy w kolejce są dodawane lub usuwane z jednego końca | Elementy w kolejce są dodawane z obu stron, można je dodawać i usuwać z obu końców |
Jest mniej wszechstronny. | Jest bardziej wszechstronny. |
43) Wspomnij o implementującym interfejsie List and Set
Klasa implementująca interfejs List: 1) ArrayList, 2) Vector i 3) LinkedList.
Klasa implementująca interfejs Set: 1) HashSet i 2) TreeSet.
44) Wyjaśnij wzorzec projektowy, a następnie Iterator
Iterator podąża za szczegółami wzorca projektowego iteratora. Umożliwia programistom poruszanie się po kolekcjach obiektów przy użyciu wspólnego interfejsu bez znajomości jego implementacji.
45) Co to jest peek () interfejsu Queue?
Peek () to metoda interfejsu kolejki. Pobiera wszystkie elementy, ale nie usuwa nagłówka kolejki. W przypadku, gdy kolejka jest pusta, ta metoda zwróci wartość null.
46) Co to jest CopyOnWriteArrayList?
CopyOnWriteArrayList to wariant ArrayList, w którym operacje takie jak add i set są implementowane przez utworzenie kopii tablicy. Jest bezpieczny dla wątków i dlatego nie zgłasza ConcurrentModificationException. Ta ArrayLists zezwala na wszystkie elementy, w tym null.
47) Rozróżnij ArrayList i LinkedList
Różnica między ArrayList i LinkedList jest następująca:
ArrayList | Połączona lista |
Używa tablicy dynamicznej. | Używa podwójnie połączonej listy. |
ArrayList nie jest preferowane do manipulacji. | LinkedList jest preferowany do manipulacji. |
ArrayList zapewnia dostęp losowy. | LinkedList nie zapewnia losowego dostępu. |
ArrayList s przechowuje tylko obiekty, dlatego zajmuje mniej pamięci | LinkedList przechowuje obiekt oraz obiekt adresowy; w związku z tym zajmuje więcej pamięci. |
48) Wyjaśnij metody interfejsu iteratora
Metody interfejsu iteratora to:
metoda | Opis |
public boolean hasNext () | Zwraca true w iteratorze zawierającym elementy; w przeciwnym razie zwraca false. |
public Object next () | Ta metoda zwraca element i przenosi wskaźnik do następnej wartości. |
public void remove () | Ta metoda Java może usunąć ostatnie elementy zwrócone przez iterator. Publiczne void remove () jest rzadziej używane. |
49) Jakie są metody klasy HashSet?
Metody klasy HashSet to:
Metody | Opis |
dodanie logiczne (obiekt o) | Ta metoda dodaje element wzmianki do tego zestawu, jeśli nie jest jeszcze obecny. |
boolean zawiera (obiekt o): | Zwraca wartość true, jeśli zestaw zawiera określony element. |
void clear (): | Ta metoda usuwa elementy zestawu. |
boolean isEmpty (): | Zwraca prawdę w przypadku, gdy zestaw nie ma elementów. |
boolean remove (Object o): | Usuwa określony element z zestawu. |
klon obiektu (): | Ta metoda zwraca kopię instancji HashSet: same elementy nie są klonowane. |
iterator iterator () | Zwraca iterator po elementach w tym zestawie. |
rozmiar int (): | Zwraca liczbę elementów dostępnych w zestawie. |
50) Jakie są metody klasy Java TreeSet?
Metody klasy Java TreeSet to:
Metody | Opisy |
boolean addAll (kolekcja c) | Dodaj wszystkie elementy z określonej kolekcji do tego zestawu. |
boolean zawiera (obiekt o) | Zwraca wartość true, jeśli zestaw zawiera element wzmianki. |
boolean isEmpty () | Ta metoda Java zwraca wartość true, jeśli ten zestaw nie zawiera żadnych elementów. |
boolean remove (Object o) | Usuń określony element z zestawu. |
void add (Object o) | Dodaje określony element do zestawu. |
void clear () | Ta metoda Java usuwa wszystkie elementy z zestawu. |
51) Wyjaśnij połączony HashSet
Klasa Java LinkedHashSet to połączona lista i implementacja tabeli Hash interfejsu Set. Zawiera unikalne elementy takie same jak HashSet. Połączony zestaw HashSet w języku Java zapewnia również opcjonalne operacje na zbiorach, które mogą zachować kolejność wstawiania.
52) Jakie są ważne metody używane na połączonej liście?
Ważnymi metodami używanymi na połączonej liście są:
metoda | Opis |
dodanie logiczne (obiekt o) | Służy do dołączania określonego elementu na końcu wektora. |
boolean zawiera (obiekt o) | Jest to metoda, która zwraca wartość true, jeśli ta lista zawiera określony element. |
void add (int index, element Object) | Wstawia element w określonym elemencie w wektorze. |
void addFirst (Obiekt o) | Służy do wstawienia danego elementu na początku. |
void addLast (Obiekt o) | Służy do dopisywania danego elementu na końcu. |
Rozmiar int () | Ta metoda może służyć do zwracania całkowitej liczby elementów na liście. |
boolean remove (Object o) | Może usunąć pierwsze wystąpienie określonego elementu z tej listy. |
int indexOf (element Object) | Ta metoda Java zwraca indeks z pierwszym wystąpieniem elementu wzmianki na tej liście lub -1. |
int lastIndexOf (element Object) | Jest to metoda Java, która zwraca indeks z ostatnim wystąpieniem określonego elementu na tej liście lub -1. |
53) Wypisz różne klasy dostępne w zestawach
Różne klasy dostępne w zestawach to: HashSet, TreeSetand i LinkedHashSet.
54) Lista metod dostępnych w interfejsie kolejki Java
- dodanie logiczne (obiekt)
- oferta logiczna (obiekt)
- obiekt usuń ()
- sonda obiektu ()
- element obiektu ()
- podgląd obiektu ()
55) Rozróżnij listę i zestaw.
Lista | Zestaw |
Uporządkowany zbiór elementów | Nieuporządkowana kolekcja elementów |
Zachowuje zamówienie reklamowe | Nie zachowuje zamówienia reklamowego |
Dozwolone są zduplikowane wartości | Zduplikowane wartości są niedozwolone |
Można przechowywać dowolną liczbę wartości null | Można przechowywać tylko jedną wartość null |
ListIterator może służyć do przechodzenia przez List w dowolnym kierunku | Nie można użyć ListIterator do przechodzenia przez zestaw |
Zawiera starszą klasę o nazwie vector | Nie zawiera żadnej starszej klasy |
56) Wyjaśnij dla każdej pętli na przykładzie
Pętla For-Each jest inną formą pętli for używanej do przechodzenia przez tablicę. Znacznie redukuje kod i nie ma zastosowania indeksu ani raczej licznika w pętli.
Przykład dla każdej pętli:
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) Wyjaśnij operator diamentu
Operator Diamond umożliwia kompilatorowi zbieranie argumentów typu klasy ogólnej. W Javie SE programista może zastąpić sparametryzowany konstruktor pustym zestawem parametrów (<>) znanym jako operator diamentu.
58) Wyjaśnij interfejs losowego dostępu
Interfejs RandomAccess jest używany przez implementacje List do wskazania, że są one szybko obsługiwane.
59) Nazwij klasy kolekcji, które implementują interfejs dostępu swobodnego
Pakiet Java.util zawiera klasy, które mogą implementować interfejs dostępu swobodnego to: CopyOnWriteArrayList, Stack, ArrayList i Vector.
60) Jak dołączyć do wielu ArrayLists?
Lista zawiera metodę addall () z wieloma ArrayList w Javie.
Na przykład rozważ dwie listy 1) areaList i 2) secondAreaList. Programista może dołączyć do nich za pomocą addall (), na przykład:
areaList.addAll (secondAreaList);
61) Wyjaśnij interfejs deque
Java.util.Deque to Java, interfejs rozszerzający interfejs kolejki. Daje wsparcie dla wstawiania i usuwania elementów na obu końcach. Ta kolejka jest również nazywana kolejką dwustronną.
62) Wyjaśnij Linkedhashmap
LinkedHashMap to implementacja interfejsu Map. Może również rozszerzać klasę HashMap. Dlatego, podobnie jak HashMap, LinkedHashMap umożliwia programistom Java zezwolenie na jeden klucz pusty i więcej niż jedną wartość null.
63) Wyjaśnij metody usuwania elementów z ArrayList
Metody usuwania elementów z ArrayList to:
metoda | Opis |
jasny() | Ta metoda usuwa elementy z ArrayList. |
usuń (indeks int) | Ta metoda ArrayList może usunąć element w określonej pozycji. |
usuń (obiekt o) | Może usunąć pierwsze wystąpienie elementu wzmianki z tablicy ArrayList. |
Usuń wszystko() | Może usunąć listę elementów, które znajdują się w określonej kolekcji. |
removeIf (Predicate super E> filter) | Ta metoda usuwa elementy, które spełniają wzmiankę o predykacie. |
64) Wyjaśnij mapę. wpis w mapie
Map.entry to interfejs Java programu java.util. Ma zagnieżdżony interfejs w Map. Ten interfejs musi być kwalifikowany przez nazwę klasy lub interfejsu, którego jest członkiem. Dlatego jest kwalifikowana jako mapa. Wejście. Reprezentuje parę klucz i wartość, która może stanowić element mapy.
Ta metoda zwraca widok kolekcji. Na przykład potraktuj cityMap jako mapę. Deweloper może użyć funkcji entrySet (), aby uzyskać ustawiony widok mapy z elementem Map.Entry. Programista może również użyć funkcji getKey () i getValue () metody Map.Entry, aby uzyskać parę kluczy i wartość mapy.
65) Która metoda jest używana do sortowania tablicy w porządku rosnącym?
Metoda struktury kolekcji Java, Collections.sort (), służy do sortowania tablicy w porządku rosnącym.
66) Jak zmierzyć wydajność ArrayList?
Wydajność ArrayList można mierzyć za pomocą:
- Dodawanie elementu: Programista może dodać element na końcu ArrayList za pomocą metody add (E e). To jest O (1). W najgorszym przypadku może dojść do O (n). Może się tak zdarzyć, jeśli programista doda więcej elementów niż pojemność tablicy.
- Pobieranie elementu : - Programista może uzyskać dostęp do indeksu tablicy za pomocą funkcji get (int index). Wydajność w tym przypadku można zmierzyć za pomocą metody ArrayList get () wynosi O (1).
- Usuwanie elementu: W przypadku, gdy programiści usuwają element za pomocą metody remove (int index), wówczas wydajność ArrayList można obliczyć za pomocą wspomnianej operacji remove (int index) to metoda O (n - index).
67) Wyjaśnij klasę LinkedList
Klasa LinkedList w Javie implementuje Deque i List przy użyciu podwójnie połączonej listy. Na podwójnie połączonej liście znajduje się węzeł klasy prywatnej, który zapewnia jej strukturę. Zawiera również zmienną item do przechowywania wartości i odniesienia do klasy Node. Można to wykorzystać do połączenia następnego i poprzedniego węzła.
68) Podaj przykład Hashmap
Przykładem Hashmap jest:
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) Jak iterować mapę?
Deweloper nie może bezpośrednio iterować mapy, ale ten interfejs ma dwie metody, które dają zestaw widoku mapy. Te metody to:
- Set
> entrySet (): Jest to metoda zwracająca zestaw mający wpisy wymienione na mapie. Te wpisy są generalnie sprzeciwiane, które mają typ Map. Wejście. - Set
keySet (): Ta metoda Java zwraca zestaw zawierający klucz mapy.
70) Wyjaśnij Treemap w Javie
TreeMap to klasa, która implementuje interfejs Map LinkedHashMap i HashMap. Może również implementować interfejs NavigableMap i może rozszerzać klasę AbstractMap.
71) Jaka jest różnica między Hashmap a Hashtable?
Hashmap | Hashtable |
Nie jest zsynchronizowany. | Jest zsynchronizowany. |
HashMap dopuszcza jeden klucz jako wartość null. | HashTable nie zezwala na wartości null. |
Iterator służy do przechodzenia przez HashMap. | Do przechodzenia po tablicy HashTable jest używany Iterator lub Enumerator. |
Może być używany zarówno dla HashTable, jak i HashMap i jest odporny na awarie. | Może być używany z HashTable i jest bezpieczny. |
HashMap działa szybciej niż HashTable. | Hashtable jest niewiele szybszy w porównaniu do HashMap. |
72) Wyjaśnij wewnętrzne działanie HashSet w Javie
HashSet w Javie wewnętrznie używa HashMap do przechowywania elementów. Może również przechowywać unikalne wartości bez zduplikowanych wartości.
W Javie programista HashSet może mieć metodę add (E e), która pobiera tylko element do dodania jako parametr. Nie akceptuje pary klucza i wartości.
73) Wyjaśnij notację Big-O na przykładzie
Notacja Big-O przedstawia wydajność algorytmu jako liczbę elementów w ArrayList. Deweloper może użyć notacji Big-O, aby wybrać implementację kolekcji. Opiera się na wydajności, czasie i pamięci.
Na przykład ArrayList get (indeks i) to metoda wykonywania operacji w czasie stałym. Nie zależy od całkowitej liczby elementów dostępnych na liście. Dlatego wydajność w notacji Big-O to O (1).
74) Wyjaśnij najlepsze praktyki w Java Collection Framework
Najlepsze praktyki w Java Collection Framework to:
- Wybierz odpowiedni rodzaj kolekcji w zależności od potrzeb.
- Unikaj ponownego mieszania lub zmiany rozmiaru, szacując całkowitą liczbę elementów, które mają być przechowywane w klasach kolekcji.
- Napisz program w języku Java pod kątem interfejsów. Pomoże to deweloperowi w bezproblemowej zmianie implementacji w przyszłości.
- Deweloper może używać typów generycznych w celu zapewnienia bezpieczeństwa typów.
- Użyj niezmiennych klas udostępnionych przez zestaw Java Development Kit. Unikaj implementacji equals () i hashCode () dla klas niestandardowych.
- Programista powinien używać klasy narzędzi Collections dla algorytmów lub w celu uzyskania kolekcji tylko do odczytu, zsynchronizowanych lub pustych. Zwiększy to możliwość ponownego wykorzystania kodu przy niewielkiej łatwości konserwacji.
75) Wyjaśnij różne typy kolejek w Javie
W Javie istnieją trzy typy kolejek:
- Kolejka priorytetowa: jest to specjalny typ kolejki, w którym elementy są sortowane zgodnie z ich naturalną kolejnością lub niestandardowym komparatorem.
- Kolejka cykliczna: jest to rodzaj kolejki, w której operacje użytkownika są wykonywane w oparciu o metodę FIFO. Ostatni element jest połączony z pierwszą pozycją, aby utworzyć okrąg.
- Kolejka z podwójnym zakończeniem: Kolejka z podwójnym zakończeniem to abstrakcyjny typ danych, który uogólnia kolejkę. Elementy w tej kolejce można dodawać lub usuwać z głowy lub ogona.
76) Jaka jest różnica między stosem a kolejką?
Stos | Kolejka |
Zasada działania stosu to LIFO. | Działającą zasadą kolejki jest FIFO. |
Jeden koniec służy do wstawiania lub usuwania elementów. | Jeden koniec służy do wstawiania, a drugi do usuwania elementów. |
Używa jednego wskaźnika. | Używa dwóch wskaźników w prostej kolejce. |
Nie ma żadnego wariantu. | Ma warianty, takie jak kolejka priorytetowa, kolejka cykliczna, kolejka podwójnie zakończona. |
Jest łatwy w użyciu. | Nie jest łatwy w użyciu. |
77) Jaka jest różnica między tablicą a stosem?
Różnica między tablicą a stosem jest następująca:
Szyk | Stos |
Jest to zbiór elementów identyfikowanych przez indeks. | Jest to operacja zbierania, która służy jako operacje push i pop. |
Zawiera elementy typów danych, które są takie same. | Zawiera elementy różnych typów danych. |
Elementy można usuwać lub dodawać do tablicy za pomocą operacji dostępu swobodnego. | Elementy można usuwać lub dodawać do stosu za pomocą operacji LIFO. |
78) Zdefiniuj Iterator ()
Iterator () to interfejs udostępniający metody iteracji Collection. Iterator może zastąpić Enumeration w Javie. Umożliwia wywołującemu usuwanie elementów z kolekcji. Metoda zapewnia ogólny sposób przechodzenia przy użyciu elementów kolekcji i implementacji wzorca projektowego iteratora.
79) Jakie są różne sposoby iteracji listy?
Programista Java Collection Framework może iterować listę na dwa sposoby: 1) używając iteratora i 2) używając go dla każdej pętli.
80) Jakie są zalety stosu?
Zalety stosu to:
- Pomaga w zarządzaniu danymi w metodzie Last In First Out (LIFO), co nie jest możliwe w przypadku listy i tablicy połączonej.
- Gdy wywoływana jest funkcja, zmienne lokalne są przechowywane na stosie i po zwróceniu są automatycznie niszczone.
- Stos jest używany, gdy zmienna nie jest używana poza tą funkcją.
- Pozwala kontrolować sposób przydzielania i zwalniania pamięci.
- Stos automatycznie czyści obiekt.
- Niełatwo ulegać uszkodzeniu
- Nie można zmieniać rozmiaru zmiennych.