Kolekcje są bardzo przydatne przy wdrażaniu elastycznego i ogólnego przechowywania danych. Większość kolekcji może kurczyć się lub rosnąć w programie.
Pozwól nam zbadać różne struktury danych w języku programowania rdzy i jak wykonywać podstawowe operacje.
Tutaj mamy cztery główne kategorie dla kolekcji rdzy:
Omówmy szczegółowo każdą kategorię.
Kolekcje sekwencji
Tutaj omówimy trzy rodzaje kolekcji sekwencji w Rust:
VEC
VEC lub wektor to przylegająca tablica uprawy, która przechowuje wartości na liście, jeden po drugiej w pamięci.
Aby utworzyć nowy pusty wektor, użyj nowej metody, jak pokazano poniżej:
Niech mut vec = vec :: new ();
Następnie możesz dodać elementy do wektora za pomocą metody push:
VEC.push (1);
VEC.push (2);
Aby wydrukować wektor, użyj cechy debugowania, jak podano poniżej:
println!(":? ", vec);
Usuń element w wektorze za pomocą metody usuwania i indeksu elementu do usunięcia, jak pokazano poniżej:
VEC.Usuń (0); // Usuń element przy indeksie 0
println!(":? ", vec);
Vecdeque
Vecdeque lub wektor podwójnie zagraniczny jest niekonkurennym buforem pierścienia do uprawy. Możemy utworzyć nowy pusty bufor przy użyciu nowej metody podanej poniżej:
Użyj STD :: kolekcje :: vecdeque;
Niech mut deque = vecdeque :: new ();
Vecdeque używa metod push_front () i push_back () do dodawania elementów do przodu lub tylnej części deque:
Deque.push_front (1);
Deque.push_front (2);
Deque.push_front (3);
// Odprzyj
Deque.push_back (4);
Deque.push_back (5);
Aby wydrukować elementy Vecdeque, użyj cechy debugowania:
Println!(":? ", deque);
Aby usunąć elementy z vecdeque, użyj metod pop_front () i pop_back (), aby usunąć element odpowiednio z przodu i tyłu deque.
Poniższy przykład znajduje się poniżej:
Deque.pop_back ();
Deque.pop_front ();
println!(":? ", deque);
Powinno to powrócić, jak pokazano poniżej:
[3, 2, 1, 4, 5]
[2, 1, 4]
Połączona lista
To jest podwójnie połączona lista z własnymi węzłami. Jest to przydatne, gdy potrzebujesz wektora lub deque o nieznanym rozmiarze.
Aby utworzyć nową pustą LinkedList, użyj następujących:
Użyj STD :: Collections :: LinkedList;
Let Mut lnk = LinkedList :: new ();
Używamy metod push_front () i push_back () do dodawania elementów odpowiednio do przodu i tyłu listy powiązanej.
Na przykład:
Let Mut lnk = LinkedList :: new ();
lnk.push_front (3);
lnk.push_front (2);
lnk.push_front (1);
lnk.push_back (4);
lnk.push_back (5);
println!(":? ", lnk);
Poprzedni przykład powinien zwrócić w następujący sposób:
[1, 2, 3, 4, 5]
Aby usunąć elementy z listy połączonej, użyj metod POP_Front i Pop_Back:
lnk.pop_back ();
lnk.pop_front ();
println!(":? ", lnk);
Wyjście jest tak, jak pokazano:
[1, 2, 3, 4, 5] // wcześniej
[2, 3, 4] // po
Kolekcje map
Druga kategoria kolekcji rdzy na mapach, a one obejmują:
Hashmap
Hashmap umożliwia przechowywanie mapowania par kluczowych. Używa funkcji haszu, aby określić, w jaki sposób klucze i wartości są przechowywane w pamięci. Są bardzo przydatne, gdy potrzebujesz przechowywania powiązanych wartości. Używa klucza zamiast indeksu do pobierania wartości.
Aby utworzyć nową hashmap, użyj następującej składni:
Użyj STD :: Collections :: Hashmap;
Niech mapa = hashmap :: new ();
Aby wstawić pary wartości kluczowej do hashmapu, użyj następującej metody wstawienia:
mapa.wstaw (0, „kątowy”);
mapa.wstaw (1, „React”);
mapa.wstaw (3, „mithril”);
mapa.wstaw (4, „vue”);
Aby wydrukować hashmap, użyj następujących:
println!(":? ", mapa);
Powinno to powrócić, jak pokazano poniżej:
1: „React”, 2: „svelte”, 3: „mithril”, 4: „vue”, 0: „Angular”
Należy pamiętać, że klucz i wartość mogą być dowolnym obsługiwanym typem.
Aby usunąć elementy z hashmap, użyj metody remove () w następujący sposób:
mapa.usuń (1);
Btreemap
Zauważasz, że hashmap nie jest sortowany. Jeśli szukasz posortowanej mapy, użyj Btreemap. Każdy element w btreemapie jest przechowywany we własnym węźle na album.
Aby utworzyć nowy Btreemap, użyj następujących czynności:
Użyj STD :: kolekcje :: Btreemap;
Niech Mut Btree = Btreemap :: new ();
Aby dodać elementy, użyj następującej metody wstawki.
Btree.wstaw („klucz”, „wartość”);
Aby usunąć element, użyj metody Usuń jako:
Btree.usuń („klucz”);
Ustaw kolekcje
Następna kategoria kolekcji rdzy to zestawy. Te typy pochodzą z teorii zestawu i obejmują:
Hashsets
Hashset jest ściśle podobny do hashmap. Oznacza to, że jest to ustalona forma hashmapu i nie zezwala na duplikaty wartości.
Aby utworzyć nowy skrót, użyj następującej składni:
Użyj STD :: Collections :: Hashset;
Let Mut set = hashset :: new ();
Użyj wkładki i usuń metody, aby dodać i usuwać elementy odpowiednio z hashmap.
ustawić.wstaw („A”);
ustawić.usuń („a”);
Btreeset
Jest to ustalona implementacja Btreemap. Możemy stworzyć nowy BTREESET, jak pokazano poniżej:
Użyj STD :: kolekcje :: Btreeset;
Niech mut set = btreeset :: new ();
Wstaw i usuń elementy, jak podane poniżej:
ustawić.wstaw („A”);
ustawić.usuń („a”);
Kolekcje MISC
W kolekcjach MISC jest tylko jeden typ.
BinaryHeap
Sterta binarna pozwala wdrożyć dużo drzewa binarnego. Możesz utworzyć nową stertę binarną, jak podano poniżej:
Użyj STD :: kolekcje :: binaryHeap;
Niech mut heap = binaryHeap :: new ();
Aby dodać elementy, użyj następującej metody push:
sterta.push („item”);
Aby usunąć wartość, użyj następującej metody POP:
sterta.Muzyka pop();
Metoda POP usuwa największy element w stosie.
Wniosek
Ten przewodnik obejmuje popularne i przydatne struktury danych oraz ich podstawowe operacje w języku programowania rdzy. Ponadto szczegółowo omówiliśmy cztery główne kategorie kolekcji rdzy, takie jak sekwencje, mapy, zestawy i MISC. Mamy nadzieję, że ten artykuł jest pomocny. Sprawdź inne artykuły z Linux, aby uzyskać więcej wskazówek i informacji.