Tablica dynamiczna, czy lista?

0

Cześć, zastanawiam się, które rozwiązanie jest lepsze lepsze.

Jest taka sytuacja:
Mam klasę

type
  TElementKlasy = class
  //...

i klasę(TKlasa), która przechowuje te elementy. I teraz pytanie, czy lepiej do przechowywania tych elementów użyć tablicy dynamicznej, czy listy. Jeśli listy to dlaczego?

0

TClassList
bo ma zaimplementowane to o co zaraz będziesz pytał jak zaimplementować jeśli użyjesz tablicy

0
Misiekd napisał(a)

TClassList
bo ma zaimplementowane to o co zaraz będziesz pytał jak zaimplementować jeśli użyjesz tablicy

No co Ty, już zaimplementowałem ;)
Ale spoko, nie wiedziałem o takiej klasie.

To jest jedyna różnica?

0

no a czego się spodziewasz? Przeca TList to jedynie opakowanie na tablicę dynamiczną, z możliwością dodawania/usuwania/zamiany miejscami/sortowania/itp + optymalizacja. Pooglądaj sobie to, co dziedziczy z TList - TObjectList, TClassList, TComponentList i podobne. Tablica jest fajna jak masz do niej zapisać jakieś cyferki i je np. zsumować. Nie ma co wymyślać koła od nowa, listy są mocno wykorzystywane w delphi i wątpię aby Twoja implementacja była szybsza :p

0
Juhas napisał(a)

Cześć, zastanawiam się, które rozwiązanie jest lepsze lepsze.

Jest taka sytuacja:
Mam klasę

type
  TElementKlasy = class
  //...

i klasę(TKlasa), która przechowuje te elementy. I teraz pytanie, czy lepiej do przechowywania tych elementów użyć tablicy dynamicznej, czy listy. Jeśli listy to dlaczego?

Na tak postawione pytanie (... które rozwiązanie lepsze ...) odpowiedzieć nie sposób. Opisz jakie funkcje ma oferować kontener na dane. Albo na czym Ci najbardziej zależy.

b

0
b0bik napisał(a)

Na tak postawione pytanie (... które rozwiązanie lepsze ...) odpowiedzieć nie sposób. Opisz jakie funkcje ma oferować kontener na dane. Albo na czym Ci najbardziej zależy.

Standardowo: tablica Items, property Count i inne podobne.
Aktualnie robię to na dynamicznej. Jednak z tego, co mówi Misiek wynika, że listy działają szybciej. Oczywiście przy mojej aplikacji różnica nie byłaby zauważalna w tym przypadku, ale warto wiedzieć na przyszłośc.

0

Listy nie działają szybciej (ale i też nie wolniej) bo opierają się o tablice. Ale mają zoptymalizowane niektóre rzecz (jak choćby zwiększanie wielkości tablicy nie po jednym elemencie a po kilkadziesiąt co przyśpiesza znacznie jeśli dodajesz dużo i często).

1 użytkowników online, w tym zalogowanych: 0, gości: 1