Ustaw i listę

Anonim

Różnica między listą macierzy a listą powiązań

Zanim przejdziemy do rzeczywistych różnic, poznajmy, czym naprawdę są?

Co to jest zestaw?

Natrafiliśmy na pojęcie Set w matematyce, a Set tutaj mniej więcej oznacza to samo. Tak, jest to zbiór elementów, aw większości przypadków zbiór podobnych elementów. Możesz spróbować dodać te elementy do zestawu i spróbować wydrukować, aby zrozumieć, w jaki sposób jest przechowywany.

Wejście do zestawu: 20, 50, 10, 30.

Jest on faktycznie przechowywany w zestawie jako 10, 20, 30, 50.

Elementy są tutaj posortowane i nie są przechowywane w kolejności wstawiania. Jest to jedna z cech Seta, który zawsze sortuje elementy przed przechowywaniem i oczywiście są wyjątki, a jednym z nich jest LinkedhashSet, ponieważ utrzymuje kolejność wstawiania elementów.

W kategoriach komputerowych zestaw zawiera kilka dodatkowych właściwości, takich jak Metody i Dziedziczenie. Metody są podobne do funkcji i wykonują określone zadania, takie jak dodawanie, usuwanie lub iterowanie przez zestaw elementów. Większość z nas jest dobrze znana z terminu Dziedziczenie i oznacza to samo tutaj. Tak, możemy dziedziczyć Metodę z jej Kolekcji, aby można było jej używać z Ustawionym interfejsem. Ponownie mówimy o nowym określeniu, tj. Ustawionym interfejsie, i jest to nic innego jak cały zestaw elementów, w tym metody.

Jak to wdrożyć?

Dla lepszego zrozumienia przedstawiliśmy zestaw z jego składnią. Z poniższej składni można zidentyfikować różne typy zestawu, takie jak HashSet i TreeSet.

import java.util. *;

public class Setexample {

public static void main (String args []) {

int count [] = {34, 22,10,60,30,22} {25, 17, 76, 12, 88, 57};

Zestaw set = new HashSet();

próbować {

dla (int i = 0; i <5; i ++) {

set.add (count [i]);

}

System.out.println (zestaw);

TreeSet posortowaneSeteg = nowy TreeSet(zestaw);

System.out.println ("Tutaj mamy posortowane dane wyjściowe:");

System.out.println (sortedSeteg);

System.out.println ("Spójrz na pierwszy element:" + (Integer) sortedSet.first ());

System.out.println ("Spójrz na ostatni element:" + (Integer) sortedSet.last ());

}

catch (Exception e) {}

}

}

Wynik powyższego kodu jest następujący.

[25, 17, 76, 12, 88] Tutaj mamy posortowane wyniki: [12, 17, 25, 76, 88] Spójrz na pierwszy element: 12 Spójrz na ostatni element: 88

Co to jest lista?

Lista rozszerza kolekcję podobnie jak zbiór, ale zachowuje kolejność wstawiania. Próbujesz dodać następujące nazwy do listy i zobaczyć, w jaki sposób została do niej dodana.

Dane wejściowe do listy: John, Nancy, Mary, Alice.

Jak jest przechowywany na liście: John, Nancy, Mary, Alice.

Zwróć uwagę na kolejność, w jakiej zostały wstawione. Możesz określić, że "John" jest pierwszym elementem w danych wejściowych i wyjściowych, a po nim następuje ta sama kolejność, w której wstawiane są nazwy. Możemy nawet uznać tę jedną z głównych właściwości List.

Jak to wdrożyć?

Spójrzmy na kilka metod List, takich jak ArrayList i LinkedList w poniższej składni.

import java.util. *; public class Collectionssample {

public static void main (String [] args) {

Lista a1 = nowa ArrayList (); a1.add ("John"); a1.add ("Nancy"); a1.add ("Mary"); a1.add ("Alice"); System.out.println ("ArrayList Elements are"); System.out.print (" t" + a1);

List l1 = new LinkedList (); l1.add ("Silvia"); l1.add ("Arjun"); l1.add ("Deepika"); l1.add ("Susan"); System.out.println (); System.out.println ("Elementy LinkedList są"); System.out.print (" t" + l1); }}

Wynik powyższej składni jest następujący.

ArrayList Elements są

[John, Nancy, Mary, Alice]

Elementy LinkedList

[Silvia, Arjun, Deepika, Susan]

Z powyższego kodu wynika, że ​​zarówno ArrayList, jak i LinkedList utrzymują zamówienie reklamowe.

Jak różnią się one od siebie?

  • Metody i opisy:

Zestaw i lista ma swoje własne metody i spójrzmy na kilka z nich tutaj.

S. Nie Zestaw - Metody Lista - Metody
1. Dodaj() - Jest dodawanie obiektów do kolekcji. void add (int index, Object obj) - Dodaje obiekt "obj" do określonego "indeksu" listy wywołującej i zapewnia, że ​​żaden element nie zostanie nadpisany przez przesunięcie poprzednich elementów.
2. jasny() - Jest to usuwanie obiektów z kolekcji. boolean addAll (indeks int, Kolekcja c) - Dodaje całą kolekcję "c" do listy wywołującej i do określonego "indeksu". Zapewnia również, że żadne elementy nie zostaną nadpisane. Możemy również sprawdzić poprawność jego działania, analizując wartość zwracaną. Zwraca "true", jeśli zmiana się powiedzie, w przeciwnym razie zwraca wartość "false".
3. zawiera () - Sprawdza, czy zbiór zawiera określony obiekt. Zwraca wartość "true", jeśli obiekt jest obecny w zestawie. Object get (indeks int) - Zwraca element lub obiekt w określonym "indeksie".
4. jest pusty() - Chodzi o ustalenie, czy kolekcja pomaga, ponieważ nie ma w nim elementów. Zwraca wartość "true", jeśli nie ma elementu. int lastIndexOf (Object obj) - Działa podobnie do odwrotności indeks() Metoda. Zwraca ostatnie wystąpienie określonego obiektu "obj", a wartość "1" jest zwracana, jeśli nie ma takiego obiektu na liście. Dlatego może być również używany jako zawiera () Metoda ustawionego interfejsu.
6. usunąć() - Jest to usunięcie elementu z kolekcji przez określenie go jako parametru metody. ListIterator listIterator () - Zwraca iterator do początkowego indeksu listy.
7. rozmiar() - Jest to policzenie liczby obiektów lub elementów, które ma kolekcja. ListIterator listIterator (indeks int) - Pomaga w iteracji poprzez listę wywołującą, zaczynając od określonego "indeksu".
8. Usunięcie obiektu (indeks int) Usuwa obiekt z określonego "indeksu" i zwraca usunięty element jako wynik. Zmniejsza również wynikowe indeksy listy, odzwierciedlając usunięcie.
9. Zestaw obiektów (indeks int, Object obj) - Ma on przypisać obiekt "obj" do listy wywołującej w określonym "indeksie".
10. Lista subList (int start, int end) - Ma on zawierać obiekty z indeksu "start" do indeksu "koniec" na liście, która wywołała Metodę.
  • Obsługa zamówienia reklamowego:

Zbiór nigdy nie zachowuje porządku elementów, do których są włożone, podczas gdy Lista go utrzymuje. Istnieje wyjątek od tej reguły dla LinkedHashSet, ponieważ utrzymuje kolejność wstawiania, ale inny zestaw, taki jak HashSet i TreeSet, sortuje elementy przed ich zapisaniem. To samo opisano w przykładach poniżej.

Zestaw Dane wejściowe: kot, lalka, jabłko.

Przechowywane jako: Apple, Cat, Doll.

Wpisz dane: Cat, Doll, Apple.

Przechowywane jako: Cat, Doll, Apple.

  • Obecność duplikatów:

Zestaw nigdy nie zezwala na duplikaty, podczas gdy pozwala na to Lista. Jeśli do listy zostanie dodana zduplikowana wartość, zostanie ona nadpisana. Spójrz na próbki dla duplikatów zestawów i list.

Ustaw wejście: 10, 20, 20, 50.

Przechowywane jako: 10, 20, 50.

Wpisz dane wejściowe: 10, 20, 20, 50.

Przechowywane jako: 10, 20, 20, 50.

  • Wartości zerowe:

Zestaw może mieć tylko jedną wartość pustą, podczas gdy lista może mieć więcej niż jedną wartość pustą i nie jest ograniczona do żadnej liczby.

Ustaw wejście: null, null, Man, Dog, Plane.

Przechowywane jako: null, Dog, Man, Plane.

Wpisz dane wejściowe: null, null, Man, Dog, Plane.

Przechowywane jako: null, null, Man, Dog, Plane.

  • Używanie Iteratora i ListIteratora:

Metoda Iterator działa dobrze zarówno dla Set, jak i List, podczas gdy metoda ListIterator działa tylko z List. ListIterator może być używany do przechodzenia zarówno do przodu, jak i do tyłu listy.

  • Obecność klasy Legacy:

Zbiór nie ma starszej klasy, podczas gdy interfejs Listy ma dziedzictwo nazwane jako "wektor". Wektor korzysta z interfejsu listy i dlatego zachowuje kolejność wstawiania. Z powodu wysiłków synchronizacji wydajność wektora w dodawaniu, usuwaniu i aktualizacjach jest trochę wolniejsza.

  • Implementacje:

Kilka z zestawów implementacji to HashSet, LinkedHashSet i TreeSet. Niewiele implementacji List zawiera ArrayList i LinkedList.

Kiedy korzystać z Set & List?

Korzystanie z zestawu i listy jest całkowicie zależne od wymogu konserwacji zamówienia reklamowego. Jak dowiedzieliśmy się, że zestaw nigdy nie zachowuje kolejności wstawiania, można go użyć, gdy kolejność ma mniejsze znaczenie. W podobny sposób użyj Listy, jeśli chcesz zachować również sekwencję wstawiania.

Różnice w formie tabelarycznej:

S. Nie Różnice w Zestaw Lista
1. Zamówienie reklamowe Utrzymuje zamówienie reklamowe. Pierwszy wstawiony pozostaje na pierwszym miejscu i tak dalej, niezależnie od jego wartości. Nigdy nie utrzymuje zamówienia reklamowego.
2. Metody Używa metod takich jak add (), clear (), contains (), isEmpty (), remove () i size (). Używa metod takich jak add (), addAll (), get (), lastIndexOf (), ListIterator () z parametrem lub bez, remove (), set () i subList ().
3. Duplikaty Nigdy nie pozwala na duplikowanie, a w przypadku takich wygladów wartość zostaje nadpisana. Pozwala na duplikaty.
4. Wartości puste Może mieć tylko jedną wartość pustą na maksimum. Może mieć dowolną liczbę wartości pustych.
5. Używanie Iterator () i listIterator () Używa tylko iteratora metody (). Używa zarówno iteratora (), jak i listIterator ().
6. Obecność klasy Legacy Nie ma klasy Legacy. Ma klasę Legacy nazywaną wektorem.
7. Wdrożenia Kilka implementacji interfejsu Set to HashSet, LinkedHashSet i Tree Set. Kilka implementacji interfejsu List to LinkedList i ArrayList.

Mam nadzieję, że uwzględniliśmy każdą możliwą różnicę między Zestawem a Listą. Jeśli uważasz, że coś pominęliśmy, daj nam znać.