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

Autor: Laura McKinney
Data Utworzenia: 2 Kwiecień 2021
Data Aktualizacji: 11 Móc 2024
Anonim
Różnica między listą a zestawem w Javie - Technologia
Różnica między listą a zestawem w Javie - Technologia

Zawartość


Interfejs List and Set rozszerza kolekcję. Oba utrzymują kolekcję elementów lub obiektów. Jednak główną różnicą, która je odróżnia, jest lista uporządkowanego elementu, elementy są dodawane, usuwane lub dostępne za pomocą zmiennej indeksowej. Z drugiej strony, Set to zbiór obiektów, w których kolekcja nie pozwala na duplikowanie elementów. Przeanalizujmy jeszcze kilka różnic między interfejsami List i Set za pomocą tabeli porównawczej pokazanej poniżej.

  1. Wykres porównania
  2. Definicja
  3. Kluczowe różnice
  4. Wniosek

Wykres porównania

Podstawa do porównaniaLista Zestaw
PodstawowyLista zachowuje sekwencję elementów przechowywanych na liście.Zestaw nie zachowuje szczególnie kolejności wstawiania, ale Linked HashSet utrzymuje kolejność wstawiania.
PowielanieLista może zawierać zduplikowane elementy.Metoda add () zwraca false, jeśli spróbujesz wstawić zduplikowane elementy.
MetodyOprócz metod zdefiniowanych w Collection, List definiuje niektóre własne metody.Zestaw nie definiuje żadnej dodatkowej metody.
Realizacja Lista jest implementowana przez ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack.Zestaw jest implementowany przez HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.


Definicja listy

Interfejs listy rozszerza interfejs kolekcji. Lista to uporządkowana kolekcja elementów lub obiektów. W przeciwieństwie do zestawu, lista może zawierać zduplikowane elementy. Oprócz metod zdefiniowanych w liście kolekcji definiuje niektóre własne metody, takie jak metoda get () i set () oparta na indeksie. Metody add () i remove () odziedziczone z kolekcji, która dodaje lub usuwa określony element z indeksu określonego w argumencie metody. Lista jest rodzajem tablicy, której rozmiar rośnie wraz z dodawaniem elementów do listy.

Lista nie definiuje żadnej metody działania w zakresie indeksów na liście. Definiuje metodę sublist (), która zwraca listę podrzędną z oryginalnej listy określonego zakresu. Zmiany, które wprowadzasz w liście podrzędnej, pojawiają się również na oryginalnej liście. Interfejs listy jest implementowany przez ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack.


Definicja zestawu

Interfejs zestawu rozszerza interfejs kolekcji. Interfejs zestawu to kolekcja lub grupa obiektów, która nie zawiera w sobie żadnego duplikatu obiektu. Oznacza to, że dwa odniesienia nie mogą odwoływać się do jednego obiektu lub jedno odniesienie nie może odnosić się do dwóch obiektów lub nie ma dwóch odwołań odnoszących się do Null. Kolejność lub sekwencja elementu nie jest ważna Zestaw, ale nie jest tak, że zabrania uporządkowania zestawu.

Interfejs Set nie definiuje żadnej metody oprócz metody zdefiniowanej w Collection. Zamiast tego ogranicza metody kolekcji add () i addall () do dodawania dowolnego zduplikowanego obiektu w kolekcji. Próba dodania dowolnego zduplikowanego obiektu do kolekcji za pomocą metody add () z kolekcji powoduje zwrócenie wartości false. W przeciwnym razie zwraca wartość true. Interfejs zestawu jest implementowany przez HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.

  1. Sekwencja elementów / obiektów w kolekcji jest utrzymywana w List, natomiast Set nie utrzymuje kolejności elementów, ale istnieje wyjątek, że LinkedHashSet utrzymuje porządek wstawiania.
  2. Lista może mieć zduplikowane elementy, ponieważ identyfikuje dowolny element za pomocą swojego indeksu, ale zestaw nie zezwala na żadne zduplikowane elementy, ponieważ nie ma żadnego elementu indeksu służącego do identyfikacji dowolnego obiektu w kolekcji.
  3. Lista definiuje niektóre metody samodzielnie, oprócz metod zdefiniowanych w Collection. Z drugiej strony Set nie definiuje żadnej własnej metody, ale ogranicza metody Collection do dodawania jakichkolwiek zduplikowanych elementów.
  4. Lista jest implementowana przez interfejsy ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack. Z drugiej strony Set jest implementowany przez interfejsy HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.

Wniosek:

Korzystanie z interfejsu List and Set zależy od wymagań. Jeśli kolejność obiektów / elementów jest ważna, musisz użyć interfejsu listy. Jeśli nie potrzebujesz żadnych zduplikowanych elementów w swojej kolekcji, musisz użyć interfejsu Set