Kezdőoldal » Számítástechnika » Programozás » C#-ban milyen kollekciót...

C#-ban milyen kollekciót érdemes használni, ha rengetegszer hozok létre új kollekciókat, illetve a létrehozottakhoz gyakran adok hozzá új elemeket?

Figyelt kérdés
Úgy hallottam a List elég lassúnak minősül.

2014. dec. 9. 17:28
 1/5 A kérdező kommentje:
Ja az lemaradt, hogy sebességre akarok optimalizálni. Óriási az eseménytér, amit meg akarok vizsgálni.
2014. dec. 9. 17:30
 2/5 anonim ***** válasza:
Ez annyira általános, hogy ezzel kb semmit nem mondtál.
2014. dec. 9. 18:12
Hasznos számodra ez a válasz?
 3/5 anonim ***** válasza:
Tudod előre, hogy az elemszám kb milyen tartományba fog estni? Lista létrehozásnál meg lehet adni a kezdeti méretet, és ha előre tudod az, hogy mondjuk n és 2n elem van, akkor 2n-es méretet létrehozol és nem lesz szükség a lista méretének növelésére, így egész gyors lesz.
2014. dec. 9. 18:13
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:
Ha meg fogalmad sincs, hogy mekkora lesz a listád, akkor hasznos a LinkedList.
2014. dec. 9. 21:06
Hasznos számodra ez a válasz?
 5/5 anonim ***** válasza:

Ennél azért kicsit pontosabb meghatározás kéne, hogy pontosan milyen formában akarod az adataidat tárolni, mire akarod használni.


Dictionary: kulcs-érték párok, hash tábla reprezentálja, beszúrási, keresési, törlési idő konstans. Kulcs egyedi.

HashSet: értékek halmaza, egy értéket csak egyszer lehet benne tárolni, szintén hash tábla reprezentálja, de a kulcs és az érték ugyanaz az objektum, nem rendezett. Beszúrási, keresési, törlési idő konstans.

A HashSet-nek és Dictionary-nek létezik Sorted változata, azaz rendezett kulcs szerint, viszont itt a komplexitás szinte minden műveletnél konstans helyett logaritmikus és hash tábla helyett bináris fa reprezentálja őket.

Van a Stack és Queue, ezek speckó szerkezetek, viszont minden művelet konstans komplexitású.

List: a leglassabb, mivel a beszúrás, törlés, keresés komplexitása is lineáris, viszont te határozhatod meg az elemek sorrendjét.

SortedList: rendezett, hasonló mint a list viszont a rendezettség miatt a keresés valamivel gyorsabb, logaritmikus komplexitású.

LinkedList: klasszikus láncolt lista, a beszúrás konstans időben történik, a keresés lineáris komplexitású.

2014. dec. 9. 23:55
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!