Lista part.7 – wydajność.

Lista i wydajność.

Chcę teraz zakończyć ostrzeżeniem o wydajności. Widzisz, tylko dlatego, że możesz łatwo wstawiać i usuwać elementy niekoniecznie oznacza, że powinieneś. Pomyśl o akcji polegającej na dodawaniu elementów na końcu listy. Łatwe, ale co się stanie, gdy wstawisz element gdzieś w środek listy?

Wszystko po wstawieniu musi przejść w dół listy.

Listy naprawdę przechowują swoje pozycje sekwencyjnie w pamięci, więc dane muszą być fizycznie przenoszone w pamięci komputera. Oczywiście nie stanowi to problemu, jeśli jest to lista pięciu elementów a może nawet 100 elementów, ale wyobraź sobie listę, która zawiera 1 000 000 elementów i wstawiasz element na początek listy i to samo dotyczy usuwania elementów.

Z tego powodu ostrożnie wstawiajcie lub usuwajcie
elementy z dużej listy.

W większości przypadków najlepszym zastosowaniem listy jest po prostu zbudowanie kolekcji poprzez dynamiczne dodawanie potrzebnych elementów.

W tych wpisach poznałeś Listę i zobaczyłeś że w przeciwieństwie do tablicy o stałym rozmiarze, listy są tworzone jako puste a następnie możesz swobodnie dodawać i usuwać elementy, dzięki czemu są świetnymi rozwiązaniami gdy na początku nie wiemy, ile wartości będziemy mieć, ale oprócz tej różnicy, listy działają w zasadzie tak samo jak tablice do wyliczania i wyszukiwania.

Pokazałem również, jak sprawdzić ile elementów jest na liście i jak wyszukać element na liście spełniający określone kryteria, i nauczyliśmy się, że chociaż możemy wstawiać lub usuwać elementy z listy, to może to powodować problemy z wydajnością.

Cały kod do kursu na githubie:

https://github.com/mariuszjurczenko/BeginningCsharpCollections

Całościowe omówienie tematu kolekcji (tablica, lista, kolejka, stos, słownik).
Wiele przydatnych wskazówek i dobrych praktyk dostępne jest na kursie:

https://dev-hobby.pl/kursy/c-wprowadzenie-do-kolekcji/

1 comment

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *