Różnica między listą a zestawem

Spisu treści:

Różnica między listą a zestawem
Różnica między listą a zestawem

Wideo: Różnica między listą a zestawem

Wideo: Różnica między listą a zestawem
Wideo: Difference between List and Set in Java | Java Interview 2024, Listopad
Anonim

Kluczowa różnica – lista a zestaw

Większość języków programowania używa tablic do przechowywania zestawu danych tego samego typu. Jedną z głównych wad tablic jest to, że po zadeklarowaniu rozmiaru tablicy nie można go modyfikować. Jeśli programista chce przechowywać wartości przekraczające rozmiar tablicy, powinien utworzyć nową tablicę i skopiować istniejące elementy do nowej tablicy. W takich sytuacjach można użyć kolekcji. Możliwe jest dodawanie elementów, usuwanie elementów i wiele innych operacji z obsługą kolekcji. W językach programowania, takich jak Java, dostępne są różne typy kolekcji. List i Set to interfejsy hierarchii kolekcji. Podstawowym interfejsem dla innych interfejsów jest Collection. Kluczową różnicą między List i Set jest to, że List obsługuje wielokrotne przechowywanie tego samego elementu, podczas gdy Set nie obsługuje wielokrotnego przechowywania tego samego elementu. Dlatego zestaw nie pozwala na powielanie.

Co to jest lista?

Lista jest interfejsem, który rozszerza interfejs kolekcji. W interfejsie Collection jest kilka metod. Metoda add pomaga dodać element. „Metoda usuwania” polega na usunięciu elementu. Istnieje „metoda addAll” do dodawania wielu elementów, a „metoda removeAll” do usuwania elementów z kolekcji. Metoda zawiera pomaga stwierdzić, czy określony obiekt jest obecny na liście, czy nie. Funkcja „containsAll” ma na celu sprawdzenie, czy zbiór obiektów jest obecny w kolekcji. Metoda iteratora służy do przeglądania elementów listy. Ponieważ List rozszerza Collection, wszystkie metody Collection należą do List. Poza tymi metodami List zawiera metody, takie jak get i set. Programista może uzyskać wartość o określonym indeksie za pomocą metody get. Programista może ustawić wartość o określonym indeksie za pomocą metody set. „indexOf” służy do znalezienia indeksu elementu.

Na liście operacje mogą być wykonywane zgodnie z pozycją. Programista może dostarczyć element danych, który ma zostać dodany do indeksu. Więc zostanie dodany do konkretnego indeksu. Jeśli programista nie poda indeksu, element zostanie dodany na końcu Listy. Zachowuje również wstawioną kolejność. Jeśli zostanie dodany element 1, a następnie element 2, to element1 będzie przed elementem2.

Różnica między listą a zestawem
Różnica między listą a zestawem

Rysunek 01: Lista i zestaw

ArrayList, LinkedList, Vector to niektóre klasy implementujące List. W ArrayList dostęp do elementu jest szybki, ale wstawianie i usuwanie jest niższe. ArrayList nie jest bezpieczny wątkowo. Dostęp do tej samej ArrayList z wielu wątków może nie dać tego samego wyniku. W LinkedList elementy są połączone zarówno do tyłu, jak i do przodu. Wstawianie i usuwanie elementów przy użyciu LinkedList jest szybsze niż ArrayList. LinkedList implementuje List i Queue Both. Vector jest podobny do ArrayList, ale jest bezpieczny, ponieważ wszystkie metody są zsynchronizowane.

Co jest ustawione?

Set to interfejs, który rozszerza interfejs kolekcji. Ponieważ interfejs Set rozszerza Collection, wszystkie metody Collection należą również do Seta. Zestaw nie obsługuje powielanych wartości. Dlatego programista nie może dwukrotnie zapisać tego samego elementu. Zachowuje unikalny zestaw elementów. Interfejs SortedSet rozszerza interfejs Set. SortedSet utrzymuje elementy w posortowanej kolejności. Interfejs NavigableSet rozszerza SortedSet. NavigableSet zapewnia metody nawigacji, takie jak obniżenie, podłoga, sufit itp.

HashSet, LinkedHashSet i TreeSet to niektóre klasy implementujące interfejs Set. HashSet implementuje interfejs Set. Nie zachowuje wstawionej kolejności. Jeśli wartości są wstawiane jako a, x, b, mogą być przechowywane jako x, a, b. LinkedSet utrzymuje wstawioną kolejność. Jeśli elementy zostaną wstawione w kolejności a,x,b, kolejność przechowywania będzie a,x,b. TreeSet implementuje Set i NavigableSet. Nie zachowuje kolejności wstawiania, ale przechowuje elementy w posortowanej kolejności. Jeśli wstawiona kolejność to a, c, b, to elementy będą przechowywane jako a, b, c. Wszystkie HashSet, LinkedHashSet i TreeSet nie będą miały żadnych zduplikowanych elementów.

Jakie są podobieństwa między listą a zestawem?

  • Zarówno interfejsy List, jak i Set rozszerzają interfejs kolekcji.
  • Zarówno operacje listy, jak i ustawiania, takie jak dodawanie, usuwanie elementów.

Jaka jest różnica między listą a zestawem?

Lista a zestaw

Interfejs listy to pod-interfejs kolekcji, który zawiera metody wykonywania operacji, takich jak wstawianie, usuwanie na podstawie indeksu. Ustaw interfejs to podinterfejs kolekcji, który zawiera metody wykonywania operacji, takich jak wstawianie, usuwanie elementów przy zachowaniu unikalnych elementów.
Klasy
ArrayList, Vector i LinkedList to klasy implementujące interfejs List. HashSet, LinkedHashSet i TreeSet to klasy implementujące interfejs Set.
Powielanie elementów
List obsługuje powielanie elementów. Set nie obsługuje powielania elementów. Elementy są unikalne.

Podsumowanie – lista kontra zestaw

Kolekcje służą do dynamicznego przechowywania elementów. Języki programowania, takie jak Java, zapewniają interfejs Collection. List i Set to dwa interfejsy należące do interfejsu Collection. Oba interfejsy rozszerzają kolekcję. W tym artykule omówiono różnicę między listą a zestawem. Kluczową różnicą między List i Set jest to, że List obsługuje wielokrotne przechowywanie tego samego elementu, podczas gdy Set nie obsługuje wielokrotnego przechowywania tego samego elementu. Zestaw zawsze zachowuje unikalne elementy.

Zalecana: