Kolekcja a kolekcje w Javie: różnica między kolekcją a kolekcjami w Javie

Opublikowany: 2021-01-29

Spis treści

Wstęp

W tym artykule zajmiemy się jednym z najpopularniejszych pytań w języku Java — co to jest kolekcja w języku Java? Co masz na myśli przez Kolekcje w Javie? Czy kolekcja i kolekcje są takie same, czy różne w Javie?

Co to jest kolekcja?

Kolekcję można po prostu opisać jako interfejs. Za pomocą Kolekcji możemy z łatwością grupować różne obiekty w jedną całość. Kolekcja stanowi podstawę lub nagłówek hierarchii interfejsów. Jeśli dobrze znasz język C++, rozważ koncepcję kolekcji jako bardzo podobną do kontenerów w języku C++. Inne podinterfejsy tej hierarchii to Zestawy, Listy, Mapy, Kolejka, Deque itp.

Java JDK nie pozwala nam bezpośrednio manipulować interfejsem głównym kontenera, ale umożliwia nam bezpośredni dostęp do wspomnianych powyżej jego podinterfejsów. Istnieją również podinterfejsy, do których możemy mieć pośredni dostęp. Przykładami takich są – ArrayList, PriorityQueue, Vector, HashSet itp.

Potrzebujesz kolekcji?

Te interfejsy kolekcji pomagają nam w radzeniu sobie z różnymi obiektami, grupując je wydajnie i odpowiednio wykonując operacje. Te obiekty mogą być podobne lub różne od siebie. Na podstawie obiektów i ich sposobu radzenia sobie z poszczególnymi obiektami mamy wyżej wymienione podinterfejsy.

Przyjrzyjmy się szczegółowo niektórym z najpopularniejszych interfejsów kolekcji:

  • Zestaw — najważniejszą rzeczą w zestawach jest to, że zestawy nigdy nie powinny zawierać żadnych zduplikowanych elementów ani obiektów. Ten interfejs zestawu można uzyskać z java. do pakietu. Zestawy nie zwracają swoich elementów w swojej kolekcji w przewidywalnej kolejności. Jest nieuporządkowany, a wielu programistów Javy często o tym zapomina i napotyka na błędy w swoim kodzie.

EnumSet, HashSet, LinkedHashSet, TreeSet, ConcurrentSkipList Set itp. to niektóre klasy, które można zaimplementować w interfejsie Set.

  • List — implementację list można traktować jako coś podobnego do list w Pythonie, ale mają one pewne różnice. Interfejsy list w Javie to kolekcje uporządkowanych elementów lub obiektów. Są posortowane. Co więcej, w przeciwieństwie do Zestawów, Listy mogą umożliwiać powielanie elementów w swojej kolekcji. Podobnie jak w przypadku tablicy, do elementów listy można uzyskać dostęp na podstawie indeksu lub pozycji jej elementów. Niektóre podstawowe operacje przy użyciu List to – Wyszukiwanie elementu, Dostęp do elementu z listy itp.

Vector, Stack, LinkedList, ArrayList, CopyOnWriteArrayList to jedne z najczęściej używanych klas, które mogą być używane z interfejsami List.

  • Mapa — dla osób dobrze zaznajomionych z Pythonem interfejs Map jest bardzo podobny do struktury danych Dictionary w języku Python. Korzystając z interfejsu Map, możemy grupować i przechowywać elementy danych w parach klucz-wartość. Jak wynika z faktu, każdy klucz jest unikalny na mapie, a zatem nie ma zduplikowanych kluczy. Za pomocą klucza zwracana jest jego odpowiednia wartość.

HashMap, HashTable, EnumMap, TreeMap, IdentityHashMap, WeakHashMap to niektóre klasy, które można zaimplementować za pomocą interfejsu Map.

  • Stos — większość programistów zna już stosy i kolejki (omówione pokrótce kolejki). Interfejs stosu jest zaimplementowany w oparciu o zwykłą strukturę danych LIFO, tj. Last In First Out. W stosie elementy są odkładane na jeden koniec stosu, a elementy wyskakują z tego samego końca stosu.
  • Queue – Interfejs kolejki, oparty na zwykłej Strukturze danych kolejki, implementuje metodę FIFO. FIFO to skrót od First In First Out. Mówiąc prościej, elementy są umieszczane na jednym końcu kolejki i wyskakują z drugiego końca kolejki.

Co to są kolekcje?

Kolekcje to po prostu klasa narzędziowa, którą można znaleźć w javie. do pakietu. Metody należące do klasy Collections są obowiązkowo metodami statycznymi.

Potrzebujesz kolekcji?

Kolekcje zapewniają programistom łatwiejszą metodę przejścia do wykonywania pewnych podstawowych operacji na elementach bez konieczności wchodzenia w najdrobniejsze szczegóły tej operacji. Twórcy mogą skupić swoją uwagę na znacznie większych zadaniach lub operacjach. Dlatego klasy Collections są niezwykle wygodne wśród doświadczonych programistów.

Na przykład – klasa Collections posiada metodę wyszukiwania określonego elementu w kolekcji. Posiada również metodę wykonywania operacji sortowania na elementach interfejsu Collection.

Niektóre często używane klasy Collections to:

  • Collections.binarySearch() — wyszukuje żądany element w kolekcji przy użyciu popularnego algorytmu wyszukiwania binarnego.
  • Collections.sort() — wykonuje operację sortowania na określonej kolekcji.
  • Collections.max() — jak wynika z nazwy, zwraca element Maximum z określonej kolekcji.
  • Collections.min() — zwraca element Minimum z określonej kolekcji.
  • Collections.reverse() — odwraca kolejność elementów obecnych w określonej kolekcji.
  • Collections.copy() – Jak sama nazwa wskazuje, za pomocą tej opcji elementy z jednej kolekcji są kopiowane do innej kolekcji.

Przeczytaj także: Pomysły i tematy projektów Java

Ucz się kursów oprogramowania online z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Wniosek

Tak więc w Javie kolekcja i kolekcje wcale nie są tym samym. Kolekcja to interfejs, w którym grupujesz obiekty w jedną jednostkę. Kolekcje to klasa narzędziowa zawierająca zestaw operacji wykonywanych na kolekcji. Kolekcja nie zawiera wszystkich metod statycznych, ale kolekcje składają się z metod, które są statyczne.

Czego się nauczyć dalej? Zainteresowany uczeniem maszynowym i sztuczną inteligencją? upGrad oferuje dyplom PG w ML i AI we współpracy z IIIT-B, który sprawi, że będziesz niezwykle uzdolniony w tych najbardziej poszukiwanych dziedzinach, dzięki czemu Twoja kariera będzie owocna.

Jeśli chcesz dowiedzieć się więcej o procesach i narzędziach tworzenia oprogramowania, zapoznaj się z kursem dla programistów z pełnym pakietem programu upGrad Executive PG, który jest przeznaczony dla pracujących profesjonalistów.

Co to jest kolekcja w Javie?

Java Collection jest implementacją frameworka Collection, udostępnia wiele klas, które grupują i organizują obiekty kolekcji. Kolekcja to struktura danych używana do wspólnego przechowywania podobnych danych. Kolekcja to typ danych zdefiniowany przez użytkownika. Służy do grupowania obiektów w kolekcje. Kolekcja może być niemodyfikowalna lub modyfikowalna. Interfejs kolekcji jest zdefiniowany w pakiecie java.lang i jest zaimplementowany przez niektóre klasy w pakiecie java.util. Kolekcja jest typem ogólnym. Wszystkie podklasy Collection w java powinny implementować ten interfejs. To, co czyni je tak użytecznymi, to fakt, że wszystkie implementują wspólny interfejs. Dzięki temu manipulację obiektami kolekcji można wykonywać bez żadnych modyfikacji. Oszczędza to dużo czasu i sprawia, że ​​nasz kod jest bardziej czytelny, wydajny i wielokrotnego użytku.

Co to jest ArrayList w Javie?

ArrayList to ważna klasa w Javie. Służy do przechowywania listy obiektów o stałym rozmiarze. Innymi słowy, jest podobny do tablicy. Dodawanie, usuwanie i modyfikowanie zawartości listy jest szybsze w ArrayList niż w tablicy. Ponadto, jeśli zmienisz rozmiar listy, zostanie ona automatycznie zmieniona. Klasa ArrayList implementuje interfejs List, dzięki czemu można używać obiektu ArrayList wszędzie tam, gdzie używa się listy Java. Klasa ArrayList zajmuje się zmianą rozmiaru w razie potrzeby. Na przykład, jeśli wywołasz metodę add(), przekazując jej referencję do listy jednoelementowej, alokowana jest nowa tablica do przechowywania listy. Nowa tablica jest następnie wypełniana jednym elementem. To tak, jakbyś stworzył tablicę, a następnie wypełnił ją jednym elementem. Gdy obiekt ArrayList jest usuwany, tablica jest odrzucana.

Co to jest HashMap w Javie?

HashMap w Javie jest w zasadzie implementacją interfejsu AbstractMap. Jest to w zasadzie struktura danych, która umożliwia przechowywanie i wyszukiwanie par klucza i wartości. Główna różnica między HashMap i TreeMap polega na tym, że HashMap oblicza kody skrótu podczas tworzenia wpisów, podczas gdy TreeMap używa naturalnej kolejności do porządkowania wpisów.